在 C 语言中,可以通过SDL_image 库显示图像(使用方法:IMG_Load(file),file 为图像路径),通过SDL_ttf 库显示文本(使用方法:加载字体TTF_OpenFont(file, ptsize),渲染文本TTF_RenderText_Solid(font, text, color),其中 file 为字体路径,ptsize 为字体大小,text 为文本内容,color 为文本颜色)。

在 C 语言中显示图片和文字
在 C 语言中,可以使用库函数来显示图像和文本。下面详细介绍使用方法:
显示图像
库函数: SDL_Surface IMG_Load(const char file);
立即学习“C语言免费学习笔记(深入)”;
功能:从指定文件加载图像,并返回一个指向 SDL_Surface 结构的指针。
参数:
示例:
<code class="c">#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
int main() {
SDL_Window* window = NULL;
SDL_Renderer* renderer = NULL;
SDL_Surface* image = NULL;
// 初始化 SDL
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("SDL could not be initialized! SDL Error: %s\n", SDL_GetError());
return 1;
}
// 创建窗口
window = SDL_CreateWindow("Image Display", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
if (window == NULL) {
printf("Window could not be created! SDL Error: %s\n", SDL_GetError());
return 1;
}
// 创建渲染器
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (renderer == NULL) {
printf("Renderer could not be created! SDL Error: %s\n", SDL_GetError());
return 1;
}
// 加载图像
image = IMG_Load("image.png");
if (image == NULL) {
printf("Unable to load image! SDL_image Error: %s\n", IMG_GetError());
return 1;
}
// 渲染图像到窗口
SDL_Texture* texture = SDL_CreateTextureFromSurface(renderer, image);
SDL_Rect dstrect = {0, 0, image->w, image->h};
SDL_RenderCopy(renderer, texture, NULL, &dstrect);
// 更新窗口
SDL_RenderPresent(renderer);
// 等待用户关闭窗口
SDL_Event e;
while (SDL_WaitEvent(&e)) {
if (e.type == SDL_QUIT) {
break;
}
}
// 释放资源
SDL_DestroyTexture(texture);
SDL_FreeSurface(image);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}</code>显示文字
库函数: TTF_Font TTF_OpenFont(const char file, int ptsize);
<code> SDL_Surface* TTF_RenderText_Solid(TTF_Font* font, const char* text, SDL_Color color); </code>
功能:加载字体并渲染文本。
参数:
示例:
<code class="c">#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
int main() {
SDL_Window* window = NULL;
SDL_Renderer* renderer = NULL;
TTF_Font* font = NULL;
SDL_Surface* text_surface = NULL;
// 初始化 SDL 和 SDL_ttf
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("SDL could not be initialized! SDL Error: %s\n", SDL_GetError());
return 1;
}
if (TTF_Init() == -1) {
printf("SDL_ttf could not be initialized! SDL_ttf Error: %s\n", TTF_GetError());
return 1;
}
// 创建窗口
window = SDL_CreateWindow("Text Display", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_SHOWN);
if (window == NULL) {
printf("Window could not be created! SDL Error: %s\n", SDL_GetError());
return 1;
}
// 创建渲染器
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (renderer == NULL) {
printf("Renderer could not be created! SDL Error: %s\n", SDL_GetError());
return 1;
}
// 加载字体
font = TTF_OpenFont("font.ttf", 24);
if (font == NULL) {
printf("Font could not be loaded! SDL_ttf Error: %s\n", TTF_GetError());
return 1;
}
// 渲染文本
SDL_Color color = {255, 255, 255};
text_surface = TTF_RenderText_Solid(font, "Hello World!", color);
if (text_surface == NULL) {
printf("Text could not be rendered! SDL_ttf Error: %s\n", TTF_GetError());
return 1;
}
// 渲染文本到窗口
SDL_Texture* text_texture = SDL_CreateTextureFromSurface(renderer, text_surface);
SDL_Rect dstrect = {0, 0, text_surface->w, text_surface->h};
SDL_RenderCopy(renderer, text_texture, NULL, &dstrect);
// 更新窗口
SDL_RenderPresent(renderer);
// 等待用户关闭窗口
SDL_Event e;
while (SDL_WaitEvent(&e)) {
if (e.type == SDL_QUIT) {
break;
}
}
// 释放资源
SDL_DestroyTexture(text_texture);
SDL_FreeSurface(text_surface);
TTF_CloseFont(font);
TTF_Quit();
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}</code>以上就是c语言代码怎么显示图片和文字的详细内容,更多请关注php中文网其它相关文章!
C语言怎么学习?C语言怎么入门?C语言在哪学?C语言怎么学才快?不用担心,这里为大家提供了C语言速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号