Witam ostatnio zaciekawiała mnie możliwość przycięcia pliku png przy użyciu TPngImage, jest tam procedura SetSize oraz Resize
dla testów napisałem sobie takie coś:
var
PNG: TPngImage;
begin
try
PNG := TPngImage.Create;
PNG.LoadFromFile(ExtractFilePath(Application.ExeName) + 'test.png');
PNG.SetSize(PNG.Width div 2, PNG.Height div 2);
PNG.SaveToFile(ExtractFilePath(Application.ExeName) + 'test2.png');
finally
PNG.Free;
end;
end;
o dziwo pomniejszyło ładnie z zachowanie przezroczystości
postanowiłem spróbować przyciąć obrazek do takiej postaci:
a wiec potrzeba przyciąć od góry od dołu od lewej i od prawej nie bardzo mam pojęcie jak to zrobić próbowałem tak:
var
PNG, PNG2: TPngImage;
begin
try
PNG := TPngImage.Create;
PNG.LoadFromFile(ExtractFilePath(Application.ExeName) + 'test.png');
PNG2:=TPngImage.Create;
// PNG2.LoadFromFile(ExtractFilePath(Application.ExeName) + 'test.png');
PNG2.Draw(PNG.Canvas, Rect(5{Left},5{Top},15{Bottom},15{Right}));
PNG2.SaveToFile(ExtractFilePath(Application.ExeName) + 'test2.png');
finally
PNG.Free;
PNG.Free;
end;
end;
oczywiście to nie działa bo tworzy pusty plik wiem że gdzieś popełniam błąd ale nie wiem gdzie, prosił bym o pomoc bądź jakąś podpowiedź lub jak w ewentualnie inny sposób przyciąć plik *.png
Pozdrawiam