掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GDI+ で縮小した JPG の保存方法 (ID:44940)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
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 のサンプルが正しく 動くようになるでしょうか? すみませんが教えてください。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.