2010-05-27 110 views
0

我敢肯定,我在這裏犯了一些愚蠢的錯誤,但是當將tiff文件轉換爲PDF時,顏色變爲顛倒。我無法弄清楚爲什麼。這裏是我的代碼: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(); 

謝謝。

+0

你可以上傳一個示例tiff圖像,造成問題的地方? – 2010-05-27 06:53:44

+0

我複製並粘貼了您的代碼(爲iTextSharp.text.Document類型的文檔添加聲明),並將844頁面的TIFF轉換爲PDF而不會看到反轉的顏色。有沒有你沒有向我們展示的代碼? – 2010-05-27 07:04:01

+0

這就是所有的代碼(錯過了我剛剛添加的文檔聲明行)。 上傳了tiff文件到這裏:http://www.2shared.com/photo/tomEXEAS/338814-00.html,但它發生在我扔在它的每個tiff圖像。 – marekc 2010-05-27 08:14:24

回答

1

最好的解決辦法似乎是更換線路:

bm.Save(ms, ImageFormat.Tiff); 

bm.Save(ms, ImageFormat.Png); 

巴似乎給了TIFF圖像的最佳速度/文件大小的性能。爲什麼這個作品我仍然不知道。

+1

最可能的原因是1位TIFF圖像通常(但並非總是)包含彩色地圖以指定黑色和白色的感覺。此外,他們還有一個稱爲光度解釋的標籤,指示0是黑色還是0是白色。在這兩個設置之間,有4個機會讓它錯誤。 – plinth 2010-06-04 13:20:21