c++ 二进制流图片展示 不用opencv
时间: 2023-07-05 08:27:54 浏览: 163
如果你不想使用OpenCV库,也可以使用第三方库stb_image.h来读取二进制流图片并展示,以下是一个简单的示例代码:
1. 首先,需要从stb_image.h的官网下载头文件,并将其添加到你的项目中。
2. 然后,使用以下代码读取二进制流图片并展示:
```c++
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
#include <iostream>
#include <GL/glut.h>
void display() {
// 读取二进制流图片
int width, height, channels;
unsigned char* data = stbi_load_from_memory(image_data, image_size, &width, &height, &channels, 0);
// 显示图片
glClear(GL_COLOR_BUFFER_BIT);
glDrawPixels(width, height, GL_RGB, GL_UNSIGNED_BYTE, data);
glFlush();
// 释放内存
stbi_image_free(data);
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(800, 600);
glutCreateWindow("Image Viewer");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
```
在上面的示例代码中,我们使用`stbi_load_from_memory`函数从二进制流中读取图片数据,并获取图片的宽度、高度和通道数。然后,使用OpenGL的`glDrawPixels`函数将图片数据绘制到屏幕上。最后,使用`stbi_image_free`函数释放内存。
请注意,上述代码中使用了OpenGL库来展示图片,因此需要将OpenGL库链接到你的项目中。如果你不想使用OpenGL库,也可以使用其他方式展示图片,例如使用Windows GDI或Qt库等。
阅读全文