int alinesize; // 一行コピーしたいときに必要なバイト数256色か24bitのフルカラーのビットマップに対応しています。それ以外のものは駄目です 。また、256色の場合、パレットのコピーを行っていないので色化けを起こすと思います。// コピーもとのビットマップ
Graphics::TBitmap *sbit = new Graphics::TBitmap();
sbit->LoadFromFile( "c:\\work\\test.bmp" );// コピー先のビットマップ
Graphics::TBitmap *dbit = new Graphics::TBitmap();
dbit->Width = sbit->Width;
dbit->Height = sbit->Height;
dbit->PixelFormat = sbit->PixelFormat;switch( sbit->PixelFormat ){
case pf8bit:
alinesize = sbit->Width;
break;
case pf24bit:
alinesize = sbit->Width * 3;
break;
default:
// サポートしていない
alinesize = 0;
break;
}for( int y=0 ; y<sbit->Height; y++ ){
memcpy( dbit->ScanLine[y] , sbit->ScanLine[y] , alinesize );
}PaintBox1->Canvas->Draw( 0 , 0 , dbit );
delete dbit;
delete sbit;