天嵌 ARM开发社区

 找回密码
 注册
查看: 2669|回复: 5

关于paint_bmp

[复制链接]
jeff_xanthus 发表于 2010-7-14 23:00:17 | 显示全部楼层 |阅读模式
不好意思发帖比较频繁。。。。主要是最近在密集测试。。。

我有一个小问题哦,就是关于paint_bmp, 我有一个160*106的图,想置中显示,怎奈做不到。

首先,paint_bmp的那个函数的那个for 循环是不是应该
================================

for( y = y0 ; y <y0+ l ; y++ )
    {
            for( x = x0 ; x < x0+h ; x++ )
            {
================================
而不是
================================
for( y = y0 ; y <l ; y++ )
    {
            for( x = x0 ; x < h ; x++ )
            {
================================
啊?

然后,我如果 Paint_Bmp(161, 106, 160, 106,tu4_160106);
屏幕上不显示任何东西,
哪位高人知道哪里有问题?

多谢~
dfd1r 发表于 2010-7-15 10:52:15 | 显示全部楼层
1# jeff_xanthus

其实你把该函数改成下面这样就可以了
  1. void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp[])
  2. {
  3.         int x,y;
  4.         U32 c;
  5.         int p = 0;
  6.        
  7.     for( y = y0 ; y <y0+l ; y++ )  //这里本来是y=y0,y<l,y++
  8.     {
  9.             for( x = x0 ; x<x0+h ; x++ ) //x=x0,x<h,x++
  10.             {
  11.                     c = bmp[p+1] | (bmp[p]<<8) ;

  12.                         if ( ( (x) < SCR_XSIZE_TFT) && ( (y) < SCR_YSIZE_TFT) )  //(x0+x) < SCR_XSIZE_TFT) && ( (y0+y) < SCR_YSIZE_TFT)
  13.                                 LCD_BUFFER[y][x] = c ;  //原来是LCD_BUFFER[y0+y][x0+x] = c
  14.                        
  15.                     p = p +2; //这里本来是p=p+2
  16.             }
  17.     }
  18. }
复制代码
其中(x0,y0)是像素的起点坐标(左上角)
 楼主| jeff_xanthus 发表于 2010-7-16 07:56:58 | 显示全部楼层
果然能用了!  多谢~~
woshizuqiumi 发表于 2012-2-13 20:46:16 | 显示全部楼层
dfd1r 发表于 2010-7-15 10:52
1# jeff_xanthus

其实你把该函数改成下面这样就可以了其中(x0,y0)是像素的起点坐标(左上角)

请问代码中:c=bmp[P+1] | (BMP[P]<<8);是什么意思?为什么要用位运算?
图片转换器转换出来的.c文件的数据能具体说下结构是咋样的?
Mr_Double 发表于 2012-3-19 20:55:34 | 显示全部楼层
本帖最后由 Mr_Double 于 2012-3-19 21:00 编辑
woshizuqiumi 发表于 2012-2-13 20:46
请问代码中:c=bmp | (BMP

手册里面有讲的,你注意下c的类型和bmp数组的类型就知道了。把bmp[0]的数据移到c的高八位,然后或上bmp[1],即c的高八位是bmp[0],低八位是bmp[1];
另外,我们用的屏幕都是6.5万色的,需要16位来表示一个像素的颜色。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 22:15 , Processed in 1.078125 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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