如何在不引起错误的情况下将位图保存到PNG文件

时间:2019-02-27 22:16:39

标签: vb.net image-processing bitmap gdi+

我想将位图编码为PNG,然后将其保存到文件中。 但是我的heatmap_PictureBox_Bitmap.Save( filepathname ) ..导致错误:

  

GDI +中发生一般错误。

heatmap_PictureBox_Bitmap包含彩色图像。

这可以在Windows 10上的.NET应用程序上很好地显示图片:

public const  MOBILE_UPLOADER_PATH = "C:\demo\DEMO4\MOBILE UPLOADER\"
public const XY_HEATMAP_PNG_FILENAME = "XY_HEATMAP.PNG"
public const  XY_HEATMAP_PNG_PATHNAME = MOBILE_UPLOADER_PATH     & XY_HEATMAP_PNG_FILENAME  

dim heatmap_PictureBox_Bitmap   as Bitmap
. . .

' Build the image bitmap:
for x = 0 to x_range
  for y = 0 to y_range
    ' red, green, blue are integers 0 to 255
    pixel_color = Color.FromArgb( red, green, blue )
    heatmap_PictureBox_Bitmap.SetPixel( x, y, pixel_color   )  
  next
next
. . .
PictureBox_heat_map.Image = heatmap_PictureBox_Bitmap  ' displays ok

但是在下面添加此行会导致错误“在GDI +中发生一般错误。”

. . .
heatmap_PictureBox_Bitmap.Save( XY_HEATMAP_PNG_PATHNAME  ) <<<< CAUSES THE ERROR
PictureBox_heat_map.Image = heatmap_PictureBox_Bitmap

我的假设:
1. heatmap_PictureBox_Bitmap是未编码/压缩的图像数据
2. bitmap.save( pathname )编码为.PNG

我也尝试过

heatmap_PictureBox_Bitmap.Save(XY_HEATMAP_PNG_PATHNAME, System.Drawing.Imaging.ImageFormat.Png)

..同样的问题。

存在XY_HEATMAP_PNG_PATHNAME中的目录。

1 个答案:

答案 0 :(得分:0)

问题在于目标文件夹 公共常量MOBILE_UPLOADER_PATH =“ C:\ demo \ DEMO4 \ MOBILE UPLOADER \” ..不存在。

我以为它存在。

我修改了代码以创建不存在的文件夹。