保存单色位图

时间:2018-10-16 02:58:22

标签: vb.net image bitmap

Original 原始图片文字

我已经花费了一整天的时间来研究如何最好地拍摄RGB图像并将其转换为黑白图像。我有7台标签打印机,所有这些打印机通常都接受1bpp位图图像。我现在遇到的问题实际上是在转换图像。我必须使用.NET VB。我尝试了许多不同的方法,从重新布线每个像素的颜色信息,到在MSDN上发现的this更精细的解决方法。不幸的是,还没有任何成功。

我的目标是输出与“ MS Paint另存为单色位图”相同的输出,因为我已经对其进行了测试,可以在所有打印机上使用。我以为这很容易让我傻了。

我想我的问题是,MS paint使用什么工具将图像实际转换并保存为单色图像?如果不知道,还有什么其他方法可以做到这一点?

MSDN Method MSDN方法文字 MS Paint MS Paint单色文本

src = 'https://maps-api-ssl.google.com/maps/api/js?v=3.34&callback=initGoogleMap&sensor=false&libraries=places&client=' + googleKey;

geocoder.geocode( { 'address': zipCode + ", USA"}, function(results, status) {
}

 Private Shared Function ConvertImage(filepath As String) As String
    Dim grayscale As New Imaging.ColorMatrix(New Single()() _
    {
        New Single() {0.299, 0.299, 0.299, 0, 0},
        New Single() {0.587, 0.587, 0.587, 0, 0},
        New Single() {0.114, 0.114, 0.114, 0, 0},
        New Single() {0, 0, 0, 1, 0},
        New Single() {0, 0, 0, 0, 1}
    })
    Dim bmp As Bitmap = New Bitmap(filepath)
    Dim imgattr As New Imaging.ImageAttributes()
    imgattr.SetColorMatrix(grayscale)
    Using g As Graphics = Graphics.FromImage(bmp)
        g.DrawImage(bmp, New Rectangle(0, 0, bmp.Width, bmp.Height),
                0, 0, bmp.Width, bmp.Height,
                GraphicsUnit.Pixel, imgattr)
    End Using
    filepath = IO.Path.GetTempPath & "IntegraCABLabel.bmp"
    bmp.Save(filepath)
    ConvertImage = filepath
End Function

0 个答案:

没有答案