Originariamente inviato da 3millennium
ti posto in toto il codice che uso...
[...]
come dovrei modificare tale codice x farlo come hai detto tu?
Va bene lavorare con il Canvas, ma dovresti manipolare la "tela" di un bitmap piuttosto che la "tela" del controllo visuale TImage.
Provo a riportare un esempio (non verificato):
codice:
var
Bmp: TBitmap;
begin
Bmp := TBitmap.Create;
try
// Ottengo l'immagine sorgente
Bmp.Assign(MyImage.Picture.Bitmap);
// Disegno ciò che serve
with Bmp.Canvas do
begin
Pen.Color := clBlack;
Brush.Color := clBlack;
Rectangle(0,0,621,404);
// ...
end;
// Visualizzo l'immagine
DestImage.Picture.Assign(Bmp);
finally
Bmp.Free;
end;
end;
Nell'esempio, SourceImage è un controllo TImage che contiene il bitmap di partenza; viene creata un'istanza di TBitmap a cui viene assegnata l'immagine di partenza e sulla quale, attraverso il Canvas, si eseguono le elaborazioni (che io ho tagliato). A lavoro ultimato, l'immagine elaborata viene assegnata ad un controllo DestImage di tipo TImage che si occupa di visualizzarla sullo schermo. Nel processo, il costrutto try...finally garantisce che le risorse del bitmap temporaneo di appoggio vengano rilasciate, anche in caso di errori.
Ciao!