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) ;
関数: 指定されたファイルから画像をロードし、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>
Function: フォントをロードしてテキストをレンダリングします。
パラメータ:
例:
<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 中国語 Web サイトの他の関連記事を参照してください。