So zeigen Sie Bilder und Text im C-Sprachcode an

下次还敢
Freigeben: 2024-04-13 21:22:03
Original
813 Leute haben es durchsucht

In der Sprache C können Sie Bilder über die SDL_image-Bibliothek anzeigen (Verwendungsmethode: IMG_Load(file), Datei ist der Bildpfad) und Text über die SDL_ttf-Bibliothek anzeigen (Verwendungsmethode: Schriftart laden TTF_OpenFont(file, ptsize), Rendertext TTF_RenderText_Solid( Schriftart, Text, Farbe), wobei Datei der Schriftartpfad, Ptgröße die Schriftgröße, Text der Textinhalt und Farbe die Textfarbe ist.

So zeigen Sie Bilder und Text im C-Sprachcode an

Bilder und Text in C-Sprache anzeigen

In C-Sprache können Sie Bibliotheksfunktionen verwenden, um Bilder und Text anzuzeigen. Im Folgenden wird die Verwendung im Detail beschrieben:

Bild anzeigen

Bibliotheksfunktion: SDL_Surface IMG_Load(const char file);

Funktion: Laden Sie das Bild aus der angegebenen Datei und geben Sie einen Zeiger auf die zurück SDL_Surface-Struktur.

Parameter:

  • Datei: Der Pfad zur zu ladenden Bilddatei.
Beispiel: re
<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>
Nach dem Login kopieren

Text anzeigen

Bibliotheksfunktion: TTF_FONT

TTF_openfont (const char

file, int pTSize); R

<code>              SDL_Surface* TTF_RenderText_Solid(TTF_Font* font, const char* text, SDL_Color color);
</code>
Nach dem Login kopieren
E Funktion: Schriftart laden und Text rendern.

Parameter:

Datei: Der Pfad zur zu ladenden Schriftartdatei.

ptsize: Schriftgröße in Punkt.
  • Text: Der zu rendernde Text.
  • Farbe: Textfarbe.
  • Beispiel:
<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo zeigen Sie Bilder und Text im C-Sprachcode an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!