stb_image.h读取图片
时间: 2023-07-26 18:06:24 浏览: 364
stb_image.h 是一个非常简单易用的开源图像解码库,它可以读取多种格式的图片文件,包括 PNG、JPEG、BMP、GIF、PSD 等等。
使用 stb_image.h 读取图片非常简单,只需要包含头文件即可:
```c++
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
```
然后调用 stbi_load 函数即可读取图片文件:
```c++
int width, height, channels;
unsigned char* image = stbi_load("test.png", &width, &height, &channels, STBI_RGB);
if (image != nullptr) {
// 使用 image 数据
stbi_image_free(image);
}
```
其中,第一个参数是图片文件的路径,第二个和第三个参数是指针,用来返回图片的宽度和高度,第四个参数是指针,用来返回图片的通道数。最后一个参数表示期望输出的颜色通道格式,可以是 STBI_grey、STBI_grey_alpha、STBI_RGB 或 STBI_RGBA。函数返回的是一个指向图片数据的 unsigned char 指针,如果读取失败则返回 nullptr。
需要注意的是,stbi_load 函数读取的数据是一个字节数组,每个像素的数据大小由通道数决定。例如,如果是 RGB 格式,则每个像素占用 3 个字节。因此,在使用 image 数据时,需要将其转换为正确的像素格式。
阅读全文