🖼️ raylib rtextures 图像与纹理示例(C 语言)

这个示例展示:

  • 加载图片(Image)
  • 从图片创建纹理(Texture2D)
  • 绘制纹理
  • 绘制纹理的部分区域(裁剪)
  • 释放资源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "raylib.h"

int main(void)
{
InitWindow(800, 450, "raylib rtextures example");
SetTargetFPS(60);

// 1. 加载图像(CPU 内存)
Image image = LoadImage("resources/raylib_logo.png");

// 2. 从图像创建纹理(GPU 内存)
Texture2D texture = LoadTextureFromImage(image);

// 3. 图像用完后可以卸载(节省内存)
UnloadImage(image);

while (!WindowShouldClose())
{
BeginDrawing();
ClearBackground(RAYWHITE);

// 4. 绘制整个纹理
DrawTexture(texture, 50, 50, WHITE);

// 5. 绘制纹理的一部分(裁剪)
Rectangle src = { 0, 0, texture.width / 2.0f, texture.height };
Rectangle dst = { 400, 100, texture.width, texture.height };
DrawTexturePro(texture, src, dst, (Vector2){0, 0}, 0.0f, WHITE);

DrawText("Texture loaded and drawn using rtextures", 10, 10, 20, DARKGRAY);

EndDrawing();
}

// 6. 卸载纹理(释放 GPU 内存)
UnloadTexture(texture);

CloseWindow();
return 0;
}

📌 示例中使用的 rtextures API

功能 API
加载图像 LoadImage()
从图像创建纹理 LoadTextureFromImage()
卸载图像 UnloadImage()
绘制纹理 DrawTexture()
绘制纹理部分区域 DrawTexturePro()
卸载纹理 UnloadTexture()

这些 API 是做 2D 游戏、UI、Sprite 动画时最常用的。