掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Jpg画像の回転処理で指定しているImageに描画されない (ID:44655)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
お世話になります。 長々と見苦しいソースで申し訳ありません。 実現したいことは、Image2にある画像をImage2に回転させて 再描画したいです。 下記のソースは、Image2を指定して描画させようとしているのですが 指定していないImage1に回転した画像が描画されてしまいます。 何が原因かわからないので行き詰っております。ご教授お願いします。 ********************************************************************** var Gcanvas : TGPGraphics; Bmp : TGPBitmap; iWidth : Integer; iHeight : Integer; Jpg : TJpegImage; Bmp2 : TBitMap; Picture : TPicture; Ms : TMemoryStream; begin // TPictureを新規作成 Picture := TPicture.Create; Bmp := TGPBitmap.Create(D:\AAA.jpg); Picture.LoadFromFile(D:\AAA.jpg); // Jpgファイルサイズを取得 iHeight := Picture.Height; iWidth := Picture.Width; Image2.Picture.Bitmap.SetSize(iWidth, iHeight); Gcanvas := TGPGraphics.Create(Image2.Picture.Bitmap.Canvas.Handle); Bmp.RotateFlip(Rotate270FlipNone); // 左に90度回転(左向きは270度になる) // 回転したイメージを表示 gcanvas.DrawImage(bmp, 1, 1, iWidth, iHeight); // 横より縦のサイズが大きかったら縦の画像 サイズの変数は回転前のサイズなので逆になる if iHeight > iWidth then begin Image2.Height := 176; Image2.Width := 224; Image2.Left := 11; end else begin Image2.Height := 200; Image2.Width := 190; Image2.Left := 28; end; // イメージのサイズより大きかったらイメージサイズに合わせる 小さければそのまま表示する if (Image2.Height > iHeight) or (Image2.Width > iWidth) then begin Image2.Stretch := False; end else begin Image2.Stretch := True; end; Image2.Stretch := True; // 回転したイメージをjpgでサーバに保存 Ms := TMemoryStream.Create; Jpg := TJpegImage.Create; if Bmp.Save(TStreamAdapter.Create(Ms), ImageJPEGClsid) <> OK then begin MessageDlg('画像を更新できません。', mtInformation, [mbOk], 0); end else begin Ms.Position := 0; Jpg.LoadFromStream(Ms); // BITMAPをストリームからJpgに読み込み Image2.Picture.Assign(Jpg); Image2.Picture.SaveToFile(D:\AAA.jpg); end; finally Bmp.Free; Gcanvas.Free; Jpg.Free; Ms.Free; Picture.Free; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.