C语言显示jpg图片
时间: 2023-07-02 18:14:50 浏览: 151
要在 C 语言中显示 JPG 图片,你可以使用一些图像处理库,例如 OpenCV、SDL_image 或 stb_image。下面是一个使用 stb_image 库来加载和显示 JPG 图片的示例代码:
```c
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
#include <stdio.h>
#include <stdlib.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
int width, height, channels;
unsigned char *image;
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
// 将图像数据绘制到屏幕上
glPixelZoom(1.0, -1.0);
glRasterPos2f(-1, 1);
glDrawPixels(width, height, GL_RGB, GL_UNSIGNED_BYTE, image);
glFlush();
}
int main(int argc, char **argv)
{
// 加载 JPG 文件
image = stbi_load("test.jpg", &width, &height, &channels, 3);
if (!image) {
fprintf(stderr, "Failed to load image: test.jpg\n");
exit(1);
}
// 初始化 GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutInitWindowSize(width, height);
glutCreateWindow("JPG Image Viewer");
// 设置 OpenGL 状态
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-1, 1, -1, 1);
glMatrixMode(GL_MODELVIEW);
// 显示图像
glutDisplayFunc(display);
glutMainLoop();
// 释放内存
stbi_image_free(image);
return 0;
}
```
这段代码使用 stb_image 库加载了一个名为 "test.jpg" 的 JPG 文件,并将图像数据存储在内存中。然后,它使用 OpenGL 在屏幕上绘制了这个图像。你可以根据需要修改这段代码来适应你的应用场景。
阅读全文