掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
画像拡大時のタイルを円滑化 (ID:40802)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Mr.XRAY様 ありがとうございました。 W1,H1を毎回変化させてみましたら全て描画され、また1000枚目が終了した時点でも画像が残りました。理由はわかりませんが、これで連続してこのテクニックが使用できる確信が持てました。改めて御礼申し上げます。 >それから,質問の時に提示するコードは,できるだけ,コピペして,他の人がすぐ実行できるものにするとよいのです. これは特に私のような初心者にとって重要で、Uses節に何を加えたらよいかなどで苦戦することが多いためできるだけコピペで動くものを解決時にはお示しするように心がけます。無駄なラインも含まれておりサーバーの容量を消費してしまい申し訳ありませんが今回成功したものをコピペさせていただきました。 procedure TForm1.Button6Click(Sender: TObject); //uses // Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, // Dialogs, StdCtrls,gdipapi,gdipobj,jpeg, ExtCtrls; var gpgraphics : TGPGraphics; bmp: TGPBitmap; DestRect:TGPrect; w,h,w0,h0,L0,T0,W1,H1,L1,T1,I: integer; begin gpgraphics := TGPGraphics.Create(Canvas.Handle); bmp := TGPBitmap.Create('C:\test.jpg'); w0 :=bmp.GetWidth; h0 :=bmp.GetHeight; L0:=50; T0:=50; w1:=w0*5; h1:=h0*5; L1:=120; T1:=100; DestRect:=makerect(L1,T1,w1,h1); try gpgraphics.SetInterpolationMode(InterpolationModeHighQualityBicubic); gpgraphics.DrawImage(bmp,destrect, L0, T0, w0-50, h0-50,UnitPixel); //1枚だけ for i:=1 to 1000 do begin //複数枚 L1:= Random(image1.Width); T1:= Random(image1.Height); w1:=round(random(w0)); h1:=round(random(h0)); DestRect:=makerect(L1,T1,w1,h1); gpgraphics.DrawImage(bmp,destrect, L0, T0, w0-50, h0-50,UnitPixel); end; finally beep; bmp.Free; gpgraphics.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.