如何使用 soil2 库将纹理保存到图像

How to save texture to image using soil2 library

提问人:Summit 提问时间:5/31/2022 最后编辑:Rabbid76Summit 更新时间:1/27/2023 访问量:95

问:

我正在尝试使用 SOIL2 库将纹理保存到图像中。

            int _width, _height;

            unsigned char* _image = SOIL_load_image("C:\\Temp\\RED.png", &_width, &_height, 0, SOIL_LOAD_RGB);

            int save_result = SOIL_save_image
            (
                "C:\\temp\\atlas.png",
                SOIL_SAVE_TYPE_PNG,
                _width, _height, GL_RGB,
                _image
            );

但是图像没有被保存,保存函数的返回值为 0。

C++ 土壤

评论


答:

2赞 hpalo 1/27/2023 #1

就我而言(GL_RGBA),我需要将 channels 参数设置为 4(而不是 GL_RGBA)才能使其正常工作。在您的情况下,您可能需要将其更改为 3(而不是 GL_RGB)。

评论

1赞 Heinrich supports Monica 2/3/2023
完全。如果查看土壤库的源代码 (github.com/SpartanJ/SOIL2),channels 参数仅指定通道数(并假定 RGB(A) 布局)。