2017-08-28 22 views
0

ここで画像のサイズを変更する方法については、多くの質問/回答があります。画像のサイズを変更して出力を保存する

しかし、私のケースに合った正しいものは見つかりません。

In this postは、大きなイメージから小さなイメージを作成したい場合にのみ機能します。

ただし、24x24サイズの画像があり、それを256x256サイズにリサイズする場合は、procedureが失敗し、歪んだ画像が表示されます。

は、以下のコードは私の問題を整理する私の試みである

Graph := TBitmap.Create; 
    try // After loading a .bmp file to Image1 with 48x48 dimension 
    Graph.Assign(Image1.Picture.Bitmap); 
    Graph.Canvas.StretchDraw(Rect(0, 0, 255, 255), Graph); 
    Graph.SetSize(255,255); 
    Graph.SaveToFile('Location\Resault.bmp'); 
    finally 
    Graph.Free; 
    end; 

原画像:

enter image description here

結果(左上の黒部分と白四角) :

enter image description here

TImageにイメージをロードし、イメージを変換/サイズ変更して変更を保存するにはどうすればよいですか?

+2

tempビットマップを255x255で使用し、小さいものを伸ばしてください。必要に応じて 'Graph'に割り当てます。小さな画像を大きな画像にリサイズすると大きな結果を期待することはありません。 – kobik

+0

@kobikコメントをいただき、ありがとうございます。 – Sami

+0

または@Sam http://chrislema.com/how-to-resize-images-to-make-them-larger-without-losing-quality/ –

答えて

2

コメントのためkobikありがとうございました。

var Graph : TBitmap; Conv : TBitmap; 
begin 

     Graph := TBitmap.Create; 
     try 
     Graph.Assign(Image1.Picture.Bitmap); 
     Conv := TBitmap.Create; 
     try 
      Conv.SetSize(255,255); 
      Conv.Canvas.StretchDraw(Rect(0, 0, 255, 255), Graph); 
      Conv.SaveToFile('Location\Resault.bmp'); 
     finally 
      Conv.Free; 
     end; 

     finally 
     Graph.Free; 
     end; 

end; 
+1

@kobik完了、ありがとう;) – Sami

+1

このコードでは、Graph変数を削除してImage1.Picture.Bitmapを直接使用することができます –

+2

255 –

関連する問題