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. 如果原始图像已打开(如 a 所示PictureBox),您将无法保存到相同的文件名。稍微更改名称,例如将“myFoo”保存为“myFoo_t”。
  3. 上面的代码假设一个正方形图像。如果高度和宽度不相同,您还需要缩放缩略图位图以防止缩略图失真。也就是说,Bitmap从另一个计算新的高度或宽度。
于 2013-10-04T16:08:49.447 回答