# eduwin 图像 API

## 图像加载

```c
void *load_image_from_file(const WCHAR *filepath, int *width, int *height);
```

从文件加载图像（bmp / png / jpg 等），返回不透明句柄（实际为 GDI+ 的 `GpImage*`，对用户透明）。如果不需要尺寸信息，`width` 和 `height` 可传 `NULL`。

返回的句柄由内部管理，用户不需要手动释放。主要用于需要获得图片原始尺寸或传入画布绘制的场景：

```c
int w, h;
void *img = load_image_from_file(L"photo.png", &w, &h);
// 现在 w / h 是图片的原始像素宽高
```

---

## 图片控件

```c
HWND create_image(HWND parent, const WCHAR *filepath, int x, int y, int w, int h);
void set_image(HWND img, const WCHAR *filepath);
```

创建一个图片显示控件。支持 **bmp / png / jpg / jpeg / gif** 等格式（内部使用 GDI+ 解码）。图片会自动缩放适配控件区域。

`create_image` 在创建时直接加载文件显示；`set_image` 可在运行时动态切换图片。

```c
// 显示 PNG 图片
HWND img = create_image(main, L"photo.png", 10, 10, 200, 150);

// 运行时切换为 JPG
set_image(img, L"photo.jpg");
```

---

## 图标控件

```c
HWND create_icon(HWND parent, const WCHAR *filepath, int x, int y, int w, int h);
```

创建一个图标显示控件，加载 `.ico` 文件并以系统标准图标大小居中显示。`w` / `h` 参数控制控件占位区域的大小，实际图标按系统尺寸（`SM_CXICON` / `SM_CYICON`）绘制。

```c
HWND icon = create_icon(main, L"app.ico", 220, 10, 48, 48);
```
