完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你用什么软件做的图片?图片背景色不对。
|
|
|
|
|
|
|
|
|
|
|
|
咕~~(╯﹏╰)b,那限制一个范围啊,不一定非要一定是白色了才不显示啊,而且范围一般好像是rgb都大于127吧,这样可以直接把白色或者近似与白色的全部滤掉,我以前做dsp图像处理就用的类似方法,只不过是在hsi空间下过滤的,不过核心方法都是一样
|
|
|
|
--------------------------------- 咕~~(╯﹏╰)b,那限制一个范围啊,不一定非要一定是白色了才不显示啊,而且范围一般好像是rgb都大于127吧,这样可以直接把白色或者近似与白色的全部滤掉,我以前做dsp图像处理就用的类似方法,只不过是在hsi空间下过滤的,不过核心方法都是一样
--------------------------------- 我已经判断了,并不是说要全白16位色(FFFF)我只去RGB高三位色就是上面那个效果,完全没样子 不知到你是不是真的那样搞过,实际是不行的,图标中间也有好多白色,或者接近白色,也会一同过滤的,再说边缘过滤,很难判断的,图标不规则,不想ipho都是规则图标, |
|
|
|
用.
--------------------------------- 曾经在ourdev论坛找到alphablend的代码,没整出来,只能弄个透明色,好像和边缘没关系啊,不知道那些png图片怎么搞得 |
|
|
|
图片看不到哦.
|
|
|
|
|
|
|
|
看不到图.
|
|
|
|
看你的例程好像也没用哦,怎么就能实现那个效果,好像也是将读到的数据直接发出来显示的。
BOOL BmpDecode(FileInfoStruct *BmpFileName) { u16 count; u8 rgb ,color_byte; u16 x ,y,color,tmp_color ; u16 uiTemp; //x轴方向像素计数器 u16 countpix=0;//记录像素 //x,y的实际坐标 u8 realx=0; u16 realy=0; u8 yok=1; BITMAPINFO *pbmp;//临时指针 CurFile=BmpFileName; F_Open(CurFile);//打开文件 F_Read(CurFile,jpg_buffer);//读出512个字节 pbmp=(BITMAPINFO*)jpg_buffer;//得到BMP的头部信息 count=pbmp->bmfHeader.bfOffBits; //数据偏移,得到数据段的开始地址 color_byte=pbmp->bmiHeader.biBitCount/8;//彩色位 16/24/32 PICINFO.ImgHeight=pbmp->bmiHeader.biHeight;//得到图片高度 PICINFO.ImgWidth=pbmp->bmiHeader.biWidth; //得到图片宽度 //水平像素必须是4的倍数!! if((PICINFO.ImgWidth*color_byte)%4) uiTemp=((PICINFO.ImgWidth*color_byte)/4+1)*4; else uiTemp=PICINFO.ImgWidth*color_byte; AI_Drow_Init();//初始化智能画图 //开始解码BMP x =0 ; y=PICINFO.ImgHeight; rgb=0; realy=y*PICINFO.Div_Fac/10000; while(1) { while(count<512) //读取一簇512扇区 (SectorsPerClust 每簇扇区数) { if(color_byte==3) //24位颜色图 { switch (rgb) { case 0: tmp_color = jpg_buffer[count]>>3 ; color |= tmp_color; break ; case 1: tmp_color = jpg_buffer[count]>>2 ; tmp_color <<= 5 ; color |= tmp_color ; break; case 2: tmp_color = jpg_buffer[count]>>3 ; tmp_color <<= 11 ; color |= tmp_color ; break ; } } else { if(color_byte==2) //16位颜色图 { switch(rgb) { case 0: color=jpg_buffer[count]&0x1f; tmp_color=jpg_buffer[count]>>5; tmp_color<<=6; color|=tmp_color; break ; case 1: tmp_color=jpg_buffer[count]; tmp_color<<=9 ; color |= tmp_color ; break ; } } else { if(color_byte==4)//32位颜色图 { switch (rgb) { case 0: tmp_color=jpg_buffer[count]; color|=tmp_color>>3; break ; case 1: tmp_color=jpg_buffer[count]; tmp_color>>=2; color|=tmp_color<<5; break ; case 2: tmp_color=jpg_buffer[count]; tmp_color>>=3; color|=tmp_color<<11; break ; case 3:break ; } } } }//位图颜色得到 rgb++; count++ ; if(rgb==color_byte) //水平方向读取到1像素数数据后显示 { if(x<ICINFO.ImgWidth) { realx=x*PICINFO.Div_Fac/10000;//x轴实际值 if(IsElementOk(realx,realy,1)&&yok)//符合条件 { POINT_COLOR=color; LCD_DrawPoint(realx+PICINFO.S_XOFF,realy+PICINFO.S_YOFF-1); } } x++;//x轴增加一个像素 color=0x00; rgb=0; } countpix++;//像素累加 if(countpix>=uiTemp)//水平方向像素值到了.换行 { y--; if(y<=0)return TRUE; realy=y*PICINFO.Div_Fac/10000;//实际y值改变 if(IsElementOk(realx,realy,0))yok=1;//此处不改变PICINFO.staticx,y的值 else yok=0; x=0; countpix=0; color=0x00; rgb=0; } } if(!F_Read(CurFile,jpg_buffer))break;//读出512个字节,读数失败时自动退出 count=0 ; } return TRUE;//BMP显示结束. |
|
|
|
因为我的本身就是白色的底色!!!
|
|
|
|
呵呵 才发现!
|
|
|
|
搞这个的话,估计要改程序,不知道bmp图片中透明的数据啊什么,如果知道,可以加判语句,判断是透明的话,直接跳过不写点,如果这图标没弄好,那加壁纸就没有效果了。
|
|
|
|
处理一下你的图标不就ok了吗?
|
|
|
|
如果这样换背景颜色,就又不行了
|
|
|
|
有点意思,改进下。
|
|
|
|
如果这样换背景颜色,就又不行了
--------------------------------- 可以加一个简单的图像处理程序,首先检测当前点是否是图片的边缘,然后在检测这个点是不是白色,如果都符合,这个点不显示或者显示背景色就是了。 |
|
|
|
|
|
|
|
用alphablend.
|
|
|
|
只有小组成员才能发言,加入小组>>
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
529 浏览 2 评论
551 浏览 2 评论
信号发生器产生的正弦频率信号,用定时器进行捕获,当幅值低于3V后为什么MCU就无法捕获到了?
209 浏览 2 评论
876 浏览 2 评论
编码器模式下,中断内访问其他定时器cnt值,会导致进入中断次数丢失的原因?
859 浏览 2 评论
1332浏览 9评论
STM32出现error downloading following files怎么解决?
30浏览 3评论
stm32f103的RST复位后PWM就停止输出了,为什么?
38浏览 3评论
STM32G0空闲中断异常,且DMA接收不到数据是怎么回事?
27浏览 3评论
STM32F103用Timer3TRGO通道触发ADC,ADC在三路输出PWM高电平中间点采样,如何配置?
17浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 23:19 , Processed in 0.959303 second(s), Total 92, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号