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) |