gpt4 book ai didi

C#:如何获取 PDF 页面上某个位置的颜色值(以 CMYK 为单位)?

转载 作者:行者123 更新时间:2023-11-30 21:12:34 25 4
gpt4 key购买 nike

我有一个 CMYK 彩色 PDF 文件(只有一页和图像,没有文本)。我想获取此 PDF 文件中“像素”的 CMYK 颜色值(我将位置称为“像素”),目前我按以下方式进行操作:

 - Convert the PDF page to bitmap <br>
- Get the color value of this pixel:
Color cPixel = bmpImage.GetPixel(x, y);

最后,我将 cPixel (RGB) 转换为 CMYK 值,但是该值不正确:((在原始文件中它是 100%K,但结果非常不同)。我认为问题出在我的处理上: CMYK file => Processing in RGB (convert to bitmap, read color in RGB) => Convert result into CMYK. RGB->CMYK转换公式为:

Black   = minimum(1-Red,1-Green,1-Blue)
Cyan = (1-Red-Black)/(1-Black)
Magenta = (1-Green-Black)/(1-Black)
Yellow = (1-Blue-Black)/(1-Black)

现在,我想直接从PDF中读取CMYK值,如果您有任何想法,请帮助我!在此先感谢您的阅读和任何支持。

非常感谢!!!

最佳答案

这些从 RGB 转换为 CMYK 的公式(以及用于相反转换的类似公式)在互联网上随处可见,但给出的结果非常糟糕,因为它们假设颜色系统是线性系统。这与现实相去甚远。毫不奇怪,生成的颜色与原始颜色的相似度非常低。为了获得更好的结果,您必须使用颜色配置文件(您可以使用与设备无关的配置文件)。 Windows 函数完全支持颜色转换。

不幸的是,使用颜色配置文件从 RGB 转换为 CMYK 的函数没有直接在 C# 中公开。但是你可以在这个 answer 中找到完整的解决方案.

使用颜色配置文件从 CMYK 到 RGB 的转换在 C# 中更容易实现。解决方案就在这个answer .实现之前可以试试online .

关于C#:如何获取 PDF 页面上某个位置的颜色值(以 CMYK 为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410795/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com