用C语言打开一个图片并显示
时间: 2023-05-23 15:01:27 浏览: 830
首先需要用C语言的图像处理库来处理图片,如OpenCV等。然后可以使用图像处理函数读取图像数据,并将其显示在屏幕上。
下面是一个简单的示例代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 读取图像
Mat image = imread("image.jpg");
if (image.empty())
{
cout << "无法读取图像" << endl;
return -1;
}
// 显示图像
namedWindow("Image Viewer", WINDOW_NORMAL);
imshow("Image Viewer", image);
waitKey(0);
return 0;
}
这个程序可以打开名为"image.jpg"的图像,并将其显示在一个窗口中。用户可以使用鼠标和键盘来查看图像。
相关问题
用C语言打开一个图片并显示其宽高
可以使用OpenCV库来实现这个功能,以下是示例代码:
```C
#include <stdio.h>
#include <opencv2/opencv.hpp>
int main(int argc, char** argv)
{
if (argc != 2)
{
printf("Usage: display_image <image_path>\n");
return -1;
}
cv::Mat image;
image = cv::imread(argv[1], cv::IMREAD_COLOR);
if (!image.data)
{
printf("Could not open or find the image\n");
return -1;
}
printf("Width: %d\n", image.cols);
printf("Height: %d\n", image.rows);
cv::namedWindow("Display window", cv::WINDOW_AUTOSIZE);
cv::imshow("Display window", image);
cv::waitKey(0);
return 0;
}
```
可以使用以下命令编译:
```bash
g++ display_image.cpp -o display_image `pkg-config --cflags --libs opencv4`
```
其中,`display_image`是程序名称,`<image_path>`是图片路径。运行程序的格式为:
```bash
./display_image <image_path>
```
用C语言基本函数打开一个图片并显示
可以使用C语言中的图形库来实现打开图片并显示的功能,常用的图形库有SDL、OpenGL等,以下是一个基于SDL库的示例代码:
#include <SDL.h>
int main(int argc, char *argv[])
{
SDL_Window *window = SDL_CreateWindow("Image Viewer", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
SDL_Surface *surface = SDL_LoadBMP("image.bmp");
SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);
SDL_FreeSurface(surface);
SDL_RenderCopy(renderer, texture, NULL, NULL);
SDL_RenderPresent(renderer);
SDL_Delay(5000);
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
这段代码创建了一个名为"Image Viewer"的窗口,使用SDL_LoadBMP函数加载名为"image.bmp"的图片,使用SDL_CreateTextureFromSurface函数将图片转化为纹理,使用SDL_RenderCopy函数将纹理绘制到渲染器上,最后使用SDL_RenderPresent函数显示图片并延时5秒后关闭窗口。
注意:该示例代码只支持BMP格式的图片,如果需要支持其它格式的图片,可以使用第三方图像处理库(如libjpeg、libpng等)来读取并解码图片。
阅读全文