在我的场景中,我有两个不同位置的tiff图像说
c:/temp/img1.tiff和x:/temp/img2.tiff.
我需要以编程方式将这些图像合并为单个图像
提出一些想法/代码.
谢谢,
开发
解决方法:
要仅使用Framework类来执行此操作,您基本上是这样做的:
>将每个TIFF图像加载到Bitmap对象中,例如使用Image.FromFile.
>使用编码器参数Encoder.SaveFlag = EncoderValue.MultiFrame保存第一页
>使用Bitmap.SaveAdd()将每个后续页面保存到编码器参数为Encoder.SaveFlag = EncoderValue.FrameDimensionPage的同一文件中
它看起来像这样:
ImageCodecInfo tiff = null;
foreach ( ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders() )
{
if ( codec.MimeType == "image/tiff" )
{
tiff = codec;
break;
}
}
Encoder encoder = Encoder.SaveFlag;
EncoderParameters parameters = new EncoderParamters(1);
parameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);
bitmap1.Save(newFileName, tiff, parameters);
parameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.FrameDimensionPage);
bitmap2.SaveAdd(newFileName, tiff, paramters);
parameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
bitmap2.SaveAdd(parameters);