CImg库中语法奇怪,不知道叫什么

Strange syntax in CImg library, don't know what it's called

本文关键字:不知道 什么 语法 CImg      更新时间:2023-10-16

我一直在使用cimg生成一些图像,但是我遇到了一个奇怪的语法,我不知道它叫什么。它允许您做这样的事情:

cimg_forXYC(image, x, y, z){
    // I can set things about the image here
    image(x, y, z) = 100.;
}

以前,我从未遇到过这种怪异的用户定义的自定义风格功能。它叫什么,如何创建?

cimg_forXYC是一个宏,大致替换了 for循环,并且用于循环循环图像尺寸:

cimg_forXYC(img,x,y,v) : equivalent to : cimg_forC(img,v) cimg_forXY(img,x,y)

cimg_forC(img,v) : equivalent to : for (int v = 0; v<img.spectrum(); v++)
cimg_forXY(img,x,y) : equivalent to : cimg_forY(img,y) cimg_forX(img,x)

最后

cimg_forX(img,x) : equivalent to : for (int x = 0; x<img.width(); x++)

如果您检查文档,您将看到所有详细信息。

您的image.operator()(int, int, int)返回参考,因此您可以按照自己的方式使用它。