2015-07-03 94 views
1

I know this question has been asked before但它沒有多少解釋,因爲我沒有評論的聲望我在問這個問題。識別PDF文件中的RGB和CMYK

在上述線程提供的答案檢索rg和b值,但我不知道是什麼告訴如果找到的值顯示哪些部分是CMYK(據我所知,渲染後所有值都轉換爲RGB)。

我需要首先確定在pdf文件中使用了什麼顏色的系統,現在我明白CMYK和RGB可以同時用於單個文件。所以我需要分析我的C#應用​​程序中的pdf文件,並找到一種方法將CMYK部分轉換爲RGB,如果需要的話。

I learned that conversion can be done using ABCDpdf

+0

也許你可以使用其他庫嗎?在這種情況下請看下面的例子:[使用.Net c#從Pdf文件中提取圖像](http://pdfium.patagames.com/help/html/06ea516e-df6b-4576-abd9-1acba4426a66。htm) 請注意,每個PdfBitmap包含有關顏色格式的信息:[BitmapFormats Enumeration](http://pdfium.patagames.com/help/html/1cbfa8fd-2fcd-5fce-b146-8ac6b58e677d.htm) – Andrew

+0

我試圖PDFBitmap at那一刻,生病告訴你它是怎麼回事。 – Hammadzafar

回答

0

這是一個非常寬泛的問題,如果您至少閱讀了PDF規範的一部分,它會對您更好。爲了讓你我爲什麼會這麼說的味道......

PDF和色彩空間

1)PDF可以包含多種色彩空間
的 - 設備的色彩空間,如RGB, CMYK和灰色
- 抽象色彩空間,例如實驗室
- ICC基於輪廓的色彩空間,例如基於ICC-RGB,基於ICC的實驗室,...
- 命名的或特殊的色彩空間,例如分離,設備-N和N通道
(我正在省略一些迷人的作爲圖案和陰影)

2)以上所有顏色空間都可以在整個PDF文件中使用。當您的PDF文件符合某些ISO標準(如PDF/A,PDF/X ...)時,它必須遵守限制色彩空間數量的規則,但通常所有色彩空間都允許在一個PDF中。

3)使用PDF文件時,決定如何處理這些色彩空間。如果要使用CMYK油墨打印到桌面打印機,則需要將所有這些色彩空間轉換爲CMYK。如果您在屏幕上查看PDF文件,將會將所有這些色彩空間轉換爲RGB。

轉換顏色

是的,你可以從CMYK轉換(和所有我提到的這些其他的色彩空間)爲RGB。但是,如果你想正確地做到這一點,聽起來也會困難得多。作爲一個例子來看看這個網站:http://www.rapidtables.com/convert/color/cmyk-to-rgb.htm

它包含快速和易於使用的公式用於該轉化:
R = 255×(1-C)×(1-K)
G = 255× (1-M)×(1-K)
B = 255×(1-Y)×(1-K)

這將工作,但在實踐中需要的發動機(諸如例如LittleCMS )使用ICC配置文件(用於表徵顏色空間)進行適當的轉換。

+0

感謝您的轉換公式確實有所幫助。但事情是我需要首先確定pdf中的哪些對象是cmyk,哪些是rgb或灰度。我還沒有在任何地方找到任何解決方案,我瞭解不同的色彩空間和他們的需求,但我不明白我如何在pdf中找到這些方案 – Hammadzafar

+0

「如果您至少閱讀了PDF規範的一部分,那對您更好」您已完成這個?這不是魔術 - 它在PDF規範中都非常明確地定義。那裏有專門關於色彩空間的章節。 –