将较新的图像格式转换为较旧的图像

时间:2018-10-17 04:17:55

标签: vb.net image

因此,在过去的几天里,我正在学习很多有关常规图像类型的知识。我遇到的主要障碍是我正在编写软件的打印机似乎能够识别较旧的图像编码格式。我希望在打印机上使用PNG文件,但是找不到任何库可以帮助我将图像转换为“ 4位色图,非隔行扫描” PNG。

enter image description here

因此,我被较大的BMP文件所困扰。不幸的是,当我选择输出位图时,打印机无法识别“ Windows 3.x格式”图像,这是我的许多图像转换方法输出的图像。

enter image description here

在测试中,打印机确实成功接受了“ Windows 95 / NT4和更高版本”类型的位图。

enter image description here

那么我的问题就变成了,如何使用这种较旧的编码保存位图?

这是我转换图像的最基本示例:

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

0 个答案:

没有答案