STM32不带屏幕,使用emwin给图片打水印
时间: 2023-07-20 14:34:12 浏览: 164
STM32使用EMWin的工具
在STM32没有屏幕的情况下,使用emWin给图片打水印可以通过以下步骤实现:
1. 安装emWin库并在工程中引入emWin库文件。
2. 将需要打水印的图片转换为BMP格式,并将其存储到STM32的Flash或SD卡中。
3. 在代码中加载BMP文件。如下所示:
```c
GUI_BMP_HANDLE hBmp;
hBmp = GUI_BMP_CreateFromFile("logo.bmp");
```
4. 创建一个新的内存设备上下文,用于在内存中绘制水印。如下所示:
```c
GUI_MEMDEV_Handle hMem;
hMem = GUI_MEMDEV_Create(0, 0, XSIZE_PHYS, YSIZE_PHYS);
```
5. 在新的内存设备上下文中绘制水印。如下所示:
```c
GUI_MEMDEV_Select(hMem);
GUI_DrawBitmap(hBmp, x, y);
GUI_DrawRect(x, y, x + w - 1, y + h - 1);
GUI_SetFont(GUI_FONT_16B_1);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringAt("watermark", x, y + h + 2);
```
其中,`x`和`y`表示水印绘制的起点坐标,`w`和`h`表示水印的宽度和高度,`GUI_DrawRect`函数用于绘制水印的边框,`GUI_SetFont`和`GUI_SetTextMode`函数用于设置水印的字体和颜色,`GUI_DispStringAt`函数用于在指定位置显示水印文字。
6. 将水印绘制到原始图片上。如下所示:
```c
GUI_MEMDEV_Select(0);
GUI_MEMDEV_Write(hMem);
```
7. 保存带水印的图片到Flash或SD卡中。如下所示:
```c
GUI_BMP_SaveToFile("watermark.bmp", hBmp);
```
完成以上步骤后,即可在STM32上通过emWin给图片打水印,并将带水印的图片保存到Flash或SD卡中。
阅读全文