Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何使ImageToByteArray函数更通用?_Arrays_Vb.net_Image_Memorystream - Fatal编程技术网

Arrays 如何使ImageToByteArray函数更通用?

Arrays 如何使ImageToByteArray函数更通用?,arrays,vb.net,image,memorystream,Arrays,Vb.net,Image,Memorystream,我有两种方法将图像从和转换为字节数组,这是我从StackOverflow获得的 Public Function ImageToByteArray(imageIn As Image) As Byte() Dim ms As MemoryStream = New MemoryStream() imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png) Return ms.ToArray() End Function Pu

我有两种方法将图像从和转换为字节数组,这是我从StackOverflow获得的

Public Function ImageToByteArray(imageIn As Image) As Byte()
    Dim ms As MemoryStream = New MemoryStream()
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
    Return ms.ToArray()
End Function

Public Function ByteArrayToImage(byteArrayIn As Byte()) As Image
    Dim ms As MemoryStream = new MemoryStream(byteArrayIn)
    Dim returnImage As Image = System.Drawing.Image.FromStream(ms)
    Return returnImage
End Function
当我的图像是png文件时,两者都可以正常工作。但是当用户选择jepg文件或gif时,我会得到一个
System.Runtime.InteropServices.ExternalException:“GDI+中发生了一个一般性错误。

如何使ImageToByteArray函数更通用?i、 e.接受更多文件格式。

该类有一个名为的属性,您可以尝试使用它,而不是硬编码格式

    Public Function ImageToByteArray(imageIn As Image) As Byte()
        Dim ms As MemoryStream = New MemoryStream()
        imageIn.Save(ms, imageIn.RawFormat)
        Return ms.ToArray()
    End Function
如果这不起作用,则需要将格式作为参数传递

    Public Function ImageToByteArray(imageIn As Image, format As System.Drawing.Imaging.ImageFormat) As Byte()
        Dim ms As MemoryStream = New MemoryStream()
        imageIn.Save(ms, imageIn.RawFormat)
        Return ms.ToArray()
    End Function

您是否尝试过使用.RawFormat属性而不是在.Save中对其进行硬编码?@the_lotus能否更全面地解释您的评论?…使用imageIn.RawFormat,我可以使用gif或png,但jpeg仍然会导致错误。@Randy hmmmm,不确定这种情况下会发生什么。