c# - 如何在tif图像中添加EOFB(传真 block 结束)

标签 c# .net

我正在使用 CCIT4 压缩创建一个 tif 图像。该图像没有 EOFB。有人可以帮助我如何将此 EOFB 添加到 tif 图像中。或者如何使用 EOFB 信息创建图像。

这是我在没有 EOFB 的情况下生成图像的代码

 var tifImg = new Bitmap(500, 500);
        tifImg.SetResolution(200, 200);
        Graphics graphic = Graphics.FromImage(tifImg);
        graphic.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, 500, 500));
        try
        {

                string data = "My data"; 
                Font vrFont = new Font("Verdana", 32, GraphicsUnit.Pixel);
                Size micrSize = TextRenderer.MeasureText(data, vrFont); 
                graphic.DrawString(data, vrFont, new SolidBrush(Color.Black), new Point(10, 100)); 
                Rectangle rectangle = new Rectangle(10, 20, 200, 60);
                graphic.DrawRectangle(new Pen(new SolidBrush(Color.Black)), rectangle);
                SaveImage(tifImg, fileName, appLogger);


        var imageEncoders = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders().ToList();
        var imageCodecInfo = imageEncoders.FirstOrDefault(o => o.MimeType == "image/tiff");

        var encoderParameter = new System.Drawing.Imaging.EncoderParameters(2);
        encoderParameter.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Compression, (long)System.Drawing.Imaging.EncoderValue.CompressionCCITT4);
        encoderParameter.Param[1] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.SaveFlag, (long)18);

            tifImg.Save(fileName, imageCodecInfo, encoderParameter); 
        }
        catch { throw; }
        finally
        {
            graphic.Dispose();
            tifImg.Dispose();
        }

谢谢

也先

最佳答案

这是我在项目中编写的代码。检查这是否对您有帮助。

 private void AddEOFB(string imgFileName)
    {
        var fs = new FileStream(imgFileName, FileMode.Append, FileAccess.Write);
        try
        {
            fs.Seek(0, SeekOrigin.End);
            var buf = BitConverter.GetBytes(0x00100100);
            fs.Write(buf, 0, buf.Length);
        }
        catch { throw; }
        finally
        {
            fs.Close();
            fs.Dispose();
        }
    }

关于c# - 如何在tif图像中添加EOFB(传真 block 结束),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11696856/

相关文章:

c# - 对简单类型使用结构而不是类

.net - Entity Framework Code First 如何确定多对多联结表名称?

java - 连接交易客户端和交易服务器的最佳方式

c# - 删除SQL Server中的存储过程

c# - 为什么在 linq 语句中忽略 DebuggerStepThrough?

c# - 使用数组初始值设定项

c# - 通过 COM 互操作将 C# 字典编码到 C++

c# - 如何将变量插入带有多个引号和转义字符的长字符串中?

c# - 在 Linq 中计算行数

c# - 将嵌套循环重构为单个 LINQ 查询