怎样通过C#获取图片(tif)的压缩方式,
比如:有一张图片
图片路径:d:\test.tif
图片的压缩:CCITT 4
---------------------------------------------
现在我想同过代码来获取该图片的“压缩方式”,
问题一:请问怎样获取呢?
问题二:请问我对图片进行处理(比如:旋转)之后,再保存该图片的时候,怎样才能不改变该图片的压缩方式(CCITT 4)呢?
--------------------------------
希望各位帮帮忙,指点下,我感激不尽。
解决方案
// 获取TIFF编码解码器
ImageCodecInfo ImageCodecInfo1 = null;
ImageCodecInfo[] encoders = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo imageCodecInfo in encoders)
{
if (imageCodecInfo.FormatDescription=="TIFF")
{
ImageCodecInfo1 = imageCodecInfo;
break;
}
}
// 读取图片
Image image1 = Image.FromFile(@"c:\1.tif");
EncoderParameters eps = image1.GetEncoderParameterList(ImageCodecInfo1.Clsid);
foreach (EncoderParameter ep in eps.Param)
{
// 查找压缩参数(注意要ToString)
if (ep.Encoder.ToString() == System.Drawing.Imaging.Encoder.Compression.ToString())
{
//用枚举System.Drawing.Imaging.EncoderValue与compressionValue比对
int compressionValue = ep.NumberOfValues;
int v2 = (int)System.Drawing.Imaging.EncoderValue.CompressionLZW;
int v3 = (int)System.Drawing.Imaging.EncoderValue.CompressionCCITT3;
int v4 = (int)System.Drawing.Imaging.EncoderValue.CompressionCCITT4;
int v5 = (int)System.Drawing.Imaging.EncoderValue.CompressionRle;
int v6 = (int)System.Drawing.Imaging.EncoderValue.CompressionNone;
}
}
用户评论