image-processing - 删除多页 tif 中的分页符以形成一页长页面

标签 image-processing tiff

我有一些包含多个页面的 tif 文件,我想将其转换为单个长页面。即,包含两页(每页尺寸为 8.5x11)的文件将转换为大小为 8.5x22 的结果文件。有没有办法去掉分页符?

不是询问如何将多个文件转换为单个文件。

最佳答案

我已经解决了这个问题。以下代码的大部分来自 Scott Hanselmanthis page .

此 C# 函数采用源图像的文件名及其 tiff 输出的保存位置:

public static void RemovePageBreaks(string fileInput, string fileOutput)
        {
            using (Image image = Image.FromFile(fileInput))
            using (MemoryStream m = new MemoryStream())
            {
                int width = image.Width;
                int height = 0;
                int pageCount = image.GetFrameCount(FrameDimension.Page);
                height = image.Height * pageCount;
                int pasteFrom = 0;
                using (Bitmap compositeImage = new Bitmap(width, height))
                using (Graphics compositeGraphics = Graphics.FromImage(compositeImage))
                {
                    compositeGraphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
                    for (int page = 0; page < pageCount; page++)
                    {

                        image.SelectActiveFrame(FrameDimension.Page, page);
                        image.Save(m, image.RawFormat);
                        Rectangle rect = new Rectangle(0, pasteFrom, image.Width, image.Height);
                        compositeGraphics.DrawImageUnscaledAndClipped(image, rect);
                        pasteFrom += image.Height;
                    }
                    compositeImage.Save(fileOutput, System.Drawing.Imaging.ImageFormat.Tiff);
                }

            }
        }

关于image-processing - 删除多页 tif 中的分页符以形成一页长页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313594/

相关文章:

c - 如何在c中读取TIFF文件头?

java - JAI:如何从多页 TIFF 图像容器中提取单页输入流?

matlab - 如何从 Matlab 生成有效的 HyperStack ImageJ 数据文件?

colors - 在ImageMagick中将TIFF图像转换为PNG时颜色错误

java - ClassCastException使用iText将TIF转换为PDF

c++ - OpenCV 将图像、关键点和描述符保存到文件

image-processing - 它是左对齐还是右对齐数据?

c++ - 如何在 CImg 中测试图像中的像素是否具有某种颜色?

python - Matplotlib 从一个全是 1 的数组中生成一个黑色图像

image - 指定百分比而不是时间到 ffmpeg