如何将图片大小调整为 100 像素 x 100 像素并将图片框中的图像另存为 PNG 格式?我可以保存,但输出文件无法打开。我只有的代码如下。
picbox.Image.Save("example_file", System.Drawing.Imaging.ImageFormat.Png)
最佳答案
缩略图的基础知识相当简单:
- 创建所需大小的新位图
- 将原图绘制到上面;通过绘制到较小的 BMP,它会被缩略图化
为了保存,您可能需要在文件名中添加“.png”。由于您的图像位于图片框中,因此可以将其取出以减少打字次数:
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)
注释:
- 您创建的
位图
在使用完毕后必须被丢弃。- 如果您只需保存,请将
bmpt.Dispose()
添加为最后一行。 - 如果上述方法用作返回缩略图的方法,则获取新缩略图的代码必须将其处理掉。
- 如果您只需保存,请将
- 如果原始图像已打开(例如
PictureBox
中所示),您将无法保存为相同的文件名。稍微更改名称,例如将“myFoo”保存为“myFoo_t”。 - 上面的代码假设是一个正方形图像。如果高度和宽度不同,您还需要缩放缩略图位图以防止缩略图变形。也就是说,计算新
位图
的高度或宽度。
关于.net - 调整图片框中图像的大小并将其另存为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19185629/