c# - 使用 c#.net 合并两个 tiff 图像

标签 c# image-processing tiff

在我的场景中,我在不同的位置有两个 tiff 图像

c:/temp/img1.tiffx:/temp/img2.tiff

我需要以编程方式将这些图像合并为一个图像

提出一些想法/代码。

谢谢,

开发

最佳答案

要仅使用框架类来做到这一点,您基本上是这样做的:

  1. 将每个 TIFF 图像加载到位图对象中,例如使用 Image.FromFile
  2. 使用编码器参数保存第一页 Encoder.SaveFlag = EncoderValue.MultiFrame
  3. 使用 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);

关于c# - 使用 c#.net 合并两个 tiff 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6548771/

相关文章:

c++ - 如何将单个图像从图像 vector 复制到临时 cv::Mat?

python-2.7 - 如何在 python 中实现 ImageMagick 中可用的 textcleaner 函数?

java - 将图像转换为可搜索的 pdf

java - 如何用Java编写8位灰度tiff?

matlab imshow 不适用于某些 tiff 文件

c# - 如何从用 C# 编写的 WinRT 应用程序中获取崩溃日志和堆栈跟踪?

c# - 在解决方案结构中引用共享项目

c# - 尽管有有效的 Token,为什么我仍会收到未授权的信息?

c# - 如何将图像设置为现有 pdf 文件中的 pdf 字段?

image - 二值化图像中的单独交叉线段