Jpeg画像を縮小してファイルに保存したいです。以前(2013年2月)に同じ
質問があり、KHE00221 さんから以下の回答がありました。
KHE00221 2013/02/02(土) 15:42:41
TGPGraphics はキャンバスなので保存機能が無いので
描画先を
TGPGraphics.Create(Bitmap2.Canvas.Handle);
でビットマップに変えて、
縮小後 Jpeg に変換して保存
procedure TForm4.Button1Click(Sender: TObject);
var
graphics : TGPGraphics;
bmp: TGPBitmap;
w, h: double;
Bitmap2: TBitmap;
Jpeg: TJpegImage;
begin
Jpeg := TJpegImage.Create;
Bitmap2 := TBitmap.Create;
bmp := TGPBitmap.Create('Penguins.jpg');
w :=bmp.GetWidth * 0.2;
h :=bmp.GetHeight * 0.2;
Bitmap2.SetSize(Round(W),Round(H));
graphics := TGPGraphics.Create(Bitmap2.Canvas.Handle);
try
graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
graphics.DrawImage(bmp, MakeRect(0, 0, w, h));
finally
bmp.Free;
graphics.Free;
end;
Jpeg.Assign(Bitmap2);
Jpeg.SaveToFile('Penguins2.jpg');
Bitmap2.Free;
Jpeg.Free;
end;
ところが私の環境では
Bitmap2.SetSize(Round(W),Round(H));
のところでエラーが出て、コンパイルすらできませんでした。試行錯誤で
Bitmap2.Width := Round(W);
Bitmap2.Height := Round(H);
と変更してコンパイルは通しましたが、それでもなお、Penguins2.jpg には
画像が書き込みできていません。どうすれば KHE00221 のサンプルが正しく
動くようになるでしょうか? すみませんが教えてください。
すみません! 勘違いしていました!
KHE00221 さんのサンプルは正しく動作しました!本当にごめんなさい。
できれば、この発言は「削除」してくださると助かります。
ツイート | ![]() |