3 回答
TA贡献1757条经验 获得超8个赞
那么还有其他方法可以实现这一目标吗?
不能。为了将图像转换为字节数组,您必须指定图像格式-就像将文本转换为字节数组时必须指定编码一样。
如果您担心压缩伪影,请选择一种无损格式。如果您担心CPU资源,请选择一种不会压缩的格式-例如,仅原始ARGB像素。但这当然会导致更大的字节数组。
请注意,如果选择了包含压缩的格式,则随后压缩字节数组毫无意义-几乎可以肯定没有任何效果。
TA贡献1893条经验 获得超10个赞
有Image参数的RawFormat属性,该属性返回图像的文件格式。您可以尝试以下方法:
// extension method
public static byte[] imageToByteArray(this System.Drawing.Image image)
{
using(var ms = new MemoryStream())
{
image.Save(ms, image.RawFormat);
return ms.ToArray();
}
}
TA贡献1802条经验 获得超5个赞
由于乔恩·斯凯特(Jon Skeet)指出的原因,我不确定您是否会获得巨大收益。但是,您可以尝试对TypeConvert.ConvertTo方法进行基准测试,并查看它与使用当前方法的比较。
ImageConverter converter = new ImageConverter();
byte[] imgArray = (byte[])converter.ConvertTo(imageIn, typeof(byte[]));
- 3 回答
- 0 关注
- 582 浏览
添加回答
举报