是否可以通过逐个像素地迭代并设置每个像素的RGB值来创建一个新的tif?使用LibTiff逐像素写入tif?
让我解释我正在尝试做什么。我试图打开一个现有的tif,使用TIFFReadRGBAImage
读取它,采用TIFFGetR
/TIFFGetG
/TIFFGetB
给出的RGB值,从255中减去它们,取这些新值并用它们逐个写入每个像素。最后,我想结束原始图像和一个新的“补充”图像,这将成为原始图像的负面影像。
有没有办法使用LibTiff来做到这一点?我已经浏览了文档并搜索了Google,但是我只看到很短的代码示例TIFFWriteScanline
,它们提供了很少的代码/上下文/注释,我无法弄清楚如何以我想要的方式实现它它工作。
我对编程还是比较陌生的,所以如果有人可以请我指出一个有大量解释性评论的完整例子,或者直接用我的代码帮助我,我将非常感激。感谢您花时间阅读本文并帮助我学习。
我有什么至今:
// Other unrelated code here...
//Invert color values and write to new image file
for (e = height - 1; e != -1; e--)
{
for (c = 0; c < width; c++)
{
red = TIFFGetR(raster[c]);
newRed = 255 - red;
green = TIFFGetG(raster[c]);
newGreen = 255 - green;
blue = TIFFGetB(raster[c]);
newBlue = 255 - blue;
// What to do next? Is this feasible?
}
}
// Other unrelated code here...
Full code如果你需要它。
自从我写了tiff代码以来已经有一段时间了,但您可以毫无困难地手动构建图像。除非你知道所有的资料来源都是一种格式,否则一定要注意不同的格式,压缩,单独的平面等。对于'接下来做什么',建立一个完整的图像行,然后使用TIFFWriteScanline(....)。 –
@johnelemans好的,谢谢。关于如何使用RGB值创建线条的任何指导? – Aizenmyouou