使用ccitt t.6,ImageToByte无法正常工作

时间:2014-10-12 18:42:27

标签: vb.net tiff

ImageToByte函数为多页tiff的每个页面获取一个字节数组。 这样做的目的是创建一个包含原始tiff的所有页面的单页tiff。

我的代码完美无缺,除了tiffs压缩ccitt t.6。当我将此多页tiff的每一页传递给ImageToByte函数时,它返回一个对应于完全黑色图像的字节数组。

Private Function ImageToByte(bImagen As System.Drawing.Image) As Byte()
    Dim codec As ImageCodecInfo = GetEncoderInfo("image/tiff")
    Dim enc As Encoder = System.Drawing.Imaging.Encoder.SaveFlag
    Dim ep As New EncoderParameters(2)

    ep.Param(0) = New EncoderParameter(enc, EncoderValue.FrameDimensionPage)
    ep.Param(1) = New EncoderParameter(Encoder.Compression, EncoderValue.CompressionNone)

    Using ms As New MemoryStream
        bImagen.Save(ms, codec, ep)
        ImageToByte = ms.ToArray
    End Using
End Function

Private Shared Function GetEncoderInfo(ByVal mimeType As String) As ImageCodecInfo
    Dim j As Integer
    Dim encoders() As ImageCodecInfo
    encoders = ImageCodecInfo.GetImageEncoders()

    j = 0
    While j < encoders.Length
        If encoders(j).MimeType = mimeType Then
            Return encoders(j)
        End If
        j += 1
    End While
    Return Nothing

End Function

有人可以告诉我如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据您发布的代码,您没有从ImageToByte功能传回任何内容。

除非你输入错误,ByteToImage应该是ImageToByte

Using ms As New MemoryStream
    bImagen.Save(ms, codec, ep)
    ByteToImage = ms.ToArray
End Using