最近在处理图像的时候,原来是CCITT T.6的,经过Batmap 的 Save(Stream, ImageFormat) 方法,结果图像压缩格式改变为 LZW的压缩格式,这样影响了程序的后续处理,最后修改为调用Save(Stream, ImageCodecInfo, EncoderParameters) 来保存,代码如下:
public static byte[] BitmapToBytes(Bitmap bitmap)
{
ImageCodecInfo myImageCodecInfo;
System.Drawing.Imaging.Encoder myEncoder;
myEncoder = System.Drawing.Imaging.Encoder.Compression;
EncoderParameters myEncoderParameters;
myImageCodecInfo = GetEncoderInfo("image/tiff");
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, (long)EncoderValue.CompressionCCITT4);
myEncoderParameters = new EncoderParameters(1);
myEncoderParameters.Param[0] = myEncoderParameter;
MemoryStream ms = null;
try
{
ms = new MemoryStream();
bitmap.Save(ms, myImageCodecInfo, myEncoderParameters);
byte[] byteImage = new Byte[ms.Length];
byteImage = ms.ToArray();
return byteImage;
}
catch (ArgumentNullException ex)
{
throw ex;
}
finally
{
ms.Close();
}
}
private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageDecoders();
for (j = 0; j < encoders.Length; j++)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
在处理图像时,原本图像采用CCITT T.6压缩,通过Bitmap的Save方法保存后,压缩格式变为LZW。为保持原始格式,使用Save(Stream, ImageCodecInfo, EncoderParameters)方法进行保存,以确保程序后续处理不受影响。"
112691726,10468789,图的数据结构与算法解析,"['数据结构', '图算法', '网络', '数据挖掘']
359

被折叠的 条评论
为什么被折叠?



