Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2342363
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:01:14

Victor: 您好
您的水平真高,我用了您的YB_IDE,很好用,正准备用您的串口控件呢,谢谢您的无私帮助!
我写了一个图片左移的子程序,
BmpBuffer保存了源图片
BmpTemp为一个已分配的位图指针,为处理方便设为8位方式(pf8bit)
Image1用来显示图片移动效果

    int pw = BmpBuffer->Width, ph = BmpBuffer->Height ;
    int ww = Image1->Width, wh = Image1-> Height;
    int i, j, k;
    Byte *ptrs, *ptrt;

    BmpTemp->PixelFormat = pf8bit;
    BmpTemp->Palette = BmpBuffer->Palette ;
    BmpTemp->Width = ww; BmpTemp->Height = wh;
    for (i=0; i       for (j=0; j          ptrt = (Byte *)BmpTemp->ScanLine[j];  ptrs = ptrt+1;
          for (k=0; k          *ptrt = BmpBuffer->Canvas->Pixels[i][j];
       }
       Image1->Canvas->Draw(0,0,BmpTemp);
       Application->ProcessMessages() ;
    }

现在的问题是:
虽然图片移动效果出来了,
但是图片与原图片的颜色完全不一样了(能辨认出轮廓来)
经过分析发现问题出在下面语句上:
*ptrt = BmpBuffer->Canvas->Pixels[i][j];
读出的原图片象素颜色送到目标图片中显示就不对了,我估计是调色板或颜色转换的问题,但不知道如何解决!


--------------------next---------------------

阅读(1158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~