.net - 调整图片框中图像的大小并将其另存为 PNG

标签 .net vb.net image png picturebox

如何将图片大小调整为 100 像素 x 100 像素并将图片框中的图像另存为 PNG 格式?我可以保存,但输出文件无法打开。我只有的代码如下。

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

最佳答案

缩略图的基础知识相当简单:

  1. 创建所需大小的新位图
  2. 将原图绘制到上面;通过绘制到较小的 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)

注释:

  1. 您创建的位图在使用完毕后必须被丢弃。
    • 如果您只需保存,请将 bmpt.Dispose() 添加为最后一行。
    • 如果上述方法用作返回缩略图的方法,则获取新缩略图的代码必须将其处理掉。
  2. 如果原始图像已打开(例如 PictureBox 中所示),您将无法保存为相同的文件名。稍微更改名称,例如将“myFoo”保存为“myFoo_t”。
  3. 上面的代码假设是一个正方形图像。如果高度和宽度不同,您还需要缩放缩略图位图以防止缩略图变形。也就是说,计算新位图的高度或宽度。

关于.net - 调整图片框中图像的大小并将其另存为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19185629/

相关文章:

.net - 我可以使用 IoC 容器来创建需要运行时值的依赖项吗?

c# - Application.Restart 不好吗?

VB.NET progressbar后台工作人员

linux - 使用curl上传图片

javascript - 将字符串列表传递给 mvc 3 Razor 中的 Controller

c# - 我可以在 Rhino Mocks 中设置当 AssertWasCalled 失败时显示一条用户友好的消息吗?

c# - 对象如何检测它何时被处理?

javascript - VB.NET:未知的网络方法

ios - 在 iOS 应用程序中为形状着色

java - 使用 Java 从 XML 文件创建图形图像(png、jpg ..)