因此,在过去的几天里,我正在学习很多有关常规图像类型的知识。我遇到的主要障碍是我正在编写软件的打印机似乎能够识别较旧的图像编码格式。我希望在打印机上使用PNG文件,但是找不到任何库可以帮助我将图像转换为“ 4位色图,非隔行扫描” PNG。
因此,我被较大的BMP文件所困扰。不幸的是,当我选择输出位图时,打印机无法识别“ Windows 3.x格式”图像,这是我的许多图像转换方法输出的图像。
在测试中,打印机确实成功接受了“ Windows 95 / NT4和更高版本”类型的位图。
那么我的问题就变成了,如何使用这种较旧的编码保存位图?
这是我转换图像的最基本示例:
Private Shared Function ConvertImage(filepath As String) As String
Try
'Open image
Dim sourceImg As Bitmap = New Bitmap(filepath)
Dim bmp As Bitmap = New Bitmap(sourceImg.Width, sourceImg.Height, PixelFormat.Format24bppRgb)
Using gr As Graphics = Graphics.FromImage(bmp)
gr.DrawImage(sourceImg, New Rectangle(0, 0, bmp.Width, bmp.Height))
End Using
'Set new path for the converted image
filepath = IO.Path.GetTempPath & "c_label.bmp"
'Save opened image as a bitmap file type
sourceImg.Save(filepath, ImageFormat.Bmp)
Catch ex As Exception
MsgBox("Failed to convert image, " & ex.Message, vbRetryCancel, "Image Conversion")
End Try
ConvertImage = filepath
End Function