如何使用c ++或c#加载cmyk图像并更改每个像素的cmyk值?

时间:2011-09-13 15:03:01

标签: c# c++ visual-studio-2010 image

整整一个月我一直试图找出如何加载cmyk图像(8位tiff)并进行UCA,UCR,GCR转换。

我知道这个转换的公式,但我有一个问题是用C ++或C#加载cmyk图像。

我的计划是逐个像素地操纵图像并更改该像素的每个值C,M,Y,K,最后将更改的图像保存为8位tiff cmyk图像。所以基本上我想要遍历每个像素,更改cmyk值,并保存图像。

我很难找到并安装这样的C#或C ++库,而我正在使用Visual Studio Express 2010。

我可以使用哪些库来加载这些图像?

2 个答案:

答案 0 :(得分:2)

libtiff可让您操作TIFF文件。另请参阅使用Visual Studio构建libtiff的this答案。

您需要使用TIFFReadScanline逐行读取图像,以避免库转换为RGB。开源tifftopnm实用程序执行此操作;它的来源是here - 它在获取数据后使用pick_cmyk_pixel将数据转换为RGB,但自然你可以替换自己的逻辑。

答案 1 :(得分:0)

EMGUopencv(c ++)的c#包装器,其中任何一个都可以轻松使用和操作Tiff文件。它们将允许您更容易地访问像素并使用高度优化的代码。由于这些是专用的图像处理库,因此它们可以让您对图像进行更多操作,而无需担心RGB转换或读取文件等。

希望他们帮忙,

干杯 克里斯