C# tiff到PDF转换中的反转颜色

C# tiff到PDF转换中的反转颜色,c#,pdf,itextsharp,tiff,C#,Pdf,Itextsharp,Tiff,我肯定我在这里犯了一些愚蠢的错误,但是当将tiff文件转换为PDF时,颜色会颠倒。我不明白为什么。这是我的密码: Document document = new Document(PageSize.A4, 50, 50, 50, 50); PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("Image.pdf", FileMode.Create)); System.Drawing.Bitmap bm = new

我肯定我在这里犯了一些愚蠢的错误,但是当将tiff文件转换为PDF时,颜色会颠倒。我不明白为什么。这是我的密码:

Document document = new Document(PageSize.A4, 50, 50, 50, 50);

PdfWriter writer = PdfWriter.GetInstance(document, new FileStream("Image.pdf", FileMode.Create));

System.Drawing.Bitmap bm = new System.Drawing.Bitmap(@"C:\Temp\338814-00.tif");
int total = bm.GetFrameCount(FrameDimension.Page);                

document.Open();
PdfContentByte cb = writer.DirectContent;

for (int k = 0; k < total; ++k)
{
 bm.SelectActiveFrame(FrameDimension.Page, k);
 MemoryStream ms = new MemoryStream();
 bm.Save(ms, ImageFormat.Tiff);

 Image img = Image.GetInstance(ms.ToArray());

 img.ScalePercent(72f / (float)img.DpiX * 100);
 img.SetAbsolutePosition(0, 0);

 cb.AddImage(img);
 document.NewPage();     
}
document.Close();
Document Document=新文档(PageSize.A4,50,50,50);
PdfWriter writer=PdfWriter.GetInstance(文档,新文件流(“Image.pdf”,FileMode.Create));
System.Drawing.Bitmap bm=新的System.Drawing.Bitmap(@“C:\Temp\338814-00.tif”);
int total=bm.GetFrameCount(FrameDimension.Page);
document.Open();
PdfContentByte cb=writer.DirectContent;
对于(整数k=0;k

谢谢。

最好的解决方案似乎是更换线路:

bm.Save(ms, ImageFormat.Tiff);


Png似乎为Tiff图像提供了最佳的速度/文件大小性能。为什么这样做,我仍然不知道。

你能上传一个在某处引起问题的tiff图像样本吗?我复制并粘贴了你的代码(为iTextSharp.text.document类型的文档添加声明),并将一个844页的tiff转换为PDF格式,而没有看到反转的颜色。是否有任何代码没有显示给我们?这就是现在所有的代码(错过了我刚才添加的文档声明行)。已将tiff文件上载到此处:,但我抛出的每个tiff图像都会出现这种情况。最可能的原因是,1位tiff图像通常(但不总是)包含一个颜色贴图,用于指定黑色和白色的含义。此外,它们还有一个名为光度解释的标记,用于指示0是黑色还是白色。在这两种设置之间,有4种可能出错。
bm.Save(ms, ImageFormat.Png);