硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2279|回复: 2
收起左侧

[emWin] GUI_MEMDEV_WriteAt 显示背景为黄色

[复制链接]

100

主题

94

回帖

394

积分

高级会员

积分
394
发表于 2021-11-4 15:52:09 | 显示全部楼层 |阅读模式
加载方式如下,原图背景透明,为啥显示图片背景为黄色;如果不用内存设备,直接显示,正常。请问这时啥情况
  1. int LoadBitMapToMemDev(GUI_MEMDEV_Handle *hpMenDev ,const char *pcFilename,int iXsize,int iYsize)
  2. {
  3.         GUI_BITMAP bmp;       
  4.         GUI_LOGPALETTE palette;
  5.         GUI_HMEM hMem;

  6.         FIL     file;
  7.         int     filesize;       
  8.         int     result;
  9.         int     bw;
  10.         char*   _acBuffer;

  11.         result = f_open(&file, pcFilename, FA_OPEN_EXISTING | FA_READ | FA_OPEN_ALWAYS);
  12.         if (result != FR_OK)
  13.         {
  14.                 ERROR("f_open(%s) =%d\n",pcFilename,result);
  15.                 return ERR_FILE;
  16.         }

  17.         filesize = f_size(&file);
  18.         hMem = GUI_ALLOC_AllocZero(filesize);////申请一块内存空间,并将其清零
  19.         _acBuffer = GUI_ALLOC_h2p(hMem);////将申请到的内存句柄转换成指针类型

  20.         result = f_read(&file, _acBuffer, filesize, &bw);
  21.         if (result != FR_OK)
  22.         {
  23.                 ERROR("f_read(%s) =%d\n",pcFilename,result);
  24.                 f_close(&file);               
  25.                 GUI_ALLOC_Free(hMem);

  26.                 return ERR_FILE;
  27.         }

  28.         GUI_CreateBitmapFromStream(&bmp, &palette, _acBuffer);

  29.         /*创建内存设备,并将 BMP 图片绘制到此内存设备里面,此内存设备要在主程序中用到,不要释放*/
  30.         *hpMenDev = GUI_MEMDEV_CreateFixed(0,0,iXsize,iYsize,GUI_MEMDEV_HASTRANS,GUI_MEMDEV_APILIST_32,GUI_COLOR_CONV_8888);
  31.         GUI_MEMDEV_Select(*hpMenDev);
  32.         GUI_SetBkColor(GUI_TRANSPARENT);
  33.         GUI_Clear();
  34.         GUI_DrawBitmap(&bmp, 0, 0);
  35.         GUI_MEMDEV_Select(0);

  36.         GUI_ALLOC_Free(hMem);

  37.         f_close(&file);       
  38.         return ERR_NONE;
  39. <div>}</div><div>
  40. </div><div>
  41. </div>
复制代码



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115834
QQ
发表于 2021-11-4 16:43:49 | 显示全部楼层
你这个代码应该是完全参考我之前这个帖子方案实现的:

重要说明,使用存储设备绘制透明图片,透明部分都是黑色背景解决办法
http://www.armbbs.cn/forum.php?m ... 8879&fromuid=58
(出处: 硬汉嵌入式论坛)

试试我这个图片正常吗
回复

使用道具 举报

100

主题

94

回帖

394

积分

高级会员

积分
394
 楼主| 发表于 2021-11-9 13:31:45 | 显示全部楼层
eric2013 发表于 2021-11-4 16:43
你这个代码应该是完全参考我之前这个帖子方案实现的:

重要说明,使用存储设备绘制透明图片,透明部分都 ...

你的图片是正常的。附件的图片是把背景修改成透明,但是,背景黄色没有了,但是图片的还是黄色的。
015_Scan_Card_Qc.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-21 14:04 , Processed in 0.599962 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表