2

100px x 100px にサイズを変更し、画像ボックスに PNG として画像を保存するにはどうすればよいですか? 保存はできますが、出力ファイルが開きません。私が持っているコードは以下のとおりです。

 picbox.Image.Save("example_file", System.Drawing.Imaging.ImageFormat.Png)
4

1 に答える 1

2

サムネイルの基本はかなり簡単です。

  1. 目的のサイズの新しいビットマップを作成します
  2. それにオリジナルを描きます。小さい BMP に描画することで、サムネイル化されます

保存するには、ファイル名に「.png」を追加することをお勧めします。画像は picbox にあるため、入力を減らすために取り出します。

Dim bmp As Bitmap = CType(picbox.Image, Bitmap)

' bmpt is the thumbnail
Dim bmpt As New Bitmap(100, 100)
Using g As Graphics = Graphics.FromImage(bmpt)

    ' draw the original image to the smaller thumb
    g.DrawImage(bmp, 0, 0,
                bmpt.Width + 1,
                bmpt.Height + 1)
End Using

bmpt.Save("example_file.PNG", System.Drawing.Imaging.ImageFormat.Png)

ノート:

  1. 作成したBitmapものは、使い終わったら破棄する必要があります。
    • 保存するだけでよい場合はbmpt.Dispose()、最後の行として追加します。
    • 上記がサムネイルを返すメソッドとして使用される場合、新しいサムネイルを取得するコードはそれを破棄する必要があります。
  2. 元の画像が開いている場合 ( のようにPictureBox)、同じファイル名で保存することはできません。「myFoo_t」として保存された「myFoo」など、名前を少し変更します。
  3. 上記のコードは、正方形の画像を想定しています。高さと幅が同じでない場合は、サムネイルのビットマップをスケーリングして、サムネイルが歪まないようにする必要があります。つまり、新しいの高さまたは幅のいずれかをBitmap他方から計算します。
于 2013-10-04T16:08:49.447 に答える