Dzięń dobry, nie znam się dobrze na operacjiach na Canvasach, a zaobserwowałem
pewnego rodzaju wadliwe działanie, i chciał bym wiedzieć dlaczego tak się dzieje
i co zrobić by było dobrze.
A teraz postaram się przedstawić problem:
To jest zdjęcie yoda.jpg
To jest to samo zdjęcie zmniejszone do wielkości 400x300 przy użyciu ACDSee
Natomiast to jest zdjęcie zmniejszone programowo
w następujący sposób:
var
Pic : TPicture;
Bmp : TBitmap;
begin
Pic := TPicture.Create;
Pic.LoadFromFile('yoda.jpg');
Bmp := TBitmap.Create;
Bmp.Width := Pic.Width;
Bmp.Height := Pic.Height;
Bmp.Canvas.Draw(0,0, Pic.Graphic);
Pic.Destroy;
Canvas.CopyRect(Rect(0,0, 400, 300), Bmp.Canvas, Rect(0,0, Bmp.Width, Bmp.Height));
Bmp.Destroy;
end;
Chyba widać różnice, no i co teraz mam zrobić żeby mi program działał jak w ACDSee ?