Dalam bahasa C, anda boleh memaparkan imej melalui perpustakaan SDL_image (kaedah penggunaan: IMG_Load(fail), fail ialah laluan imej) dan memaparkan teks melalui perpustakaan SDL_ttf (kaedah penggunaan: muatkan font TTF_OpenFont(fail, ptsize), render teks TTF_RenderText_Solid( fon, teks, warna), di mana fail ialah laluan fon, ptsize ialah saiz fon, teks ialah kandungan teks, dan warna ialah warna teks).
Paparkan imej dan teks dalam bahasa C
Dalam bahasa C, anda boleh menggunakan fungsi perpustakaan untuk memaparkan imej dan teks. Perkara berikut menerangkan penggunaan secara terperinci:
Paparkan imej
Fungsi perpustakaan: SDL_Surface IMG_Load(const char fail);
Fungsi: masukkan fail yang ditentukan dan kembalikan SDL_Struktur permukaan.
Parameter:
<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>
Paparan teks
fungsi pustaka: TTF_FONT
TTF_openfont (const char fail, 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>
Parameter:
fail: Laluan ke fail fon untuk dimuatkan. ptsize: Saiz fon dalam mata.
Atas ialah kandungan terperinci Bagaimana untuk memaparkan gambar dan teks dalam kod bahasa c. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!