有一个bmp图象,内含几幅小图象,如何将这几个小图象连续显示到一个image中?(100分)

  • 主题发起人 主题发起人 rlz
  • 开始时间 开始时间
R

rlz

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个bmp图象,内含几幅小图象,如何将这几个小图象连续显示到一个image中?
请各位大侠指教。
 
用copyRect将bmp里面的小图片一个个的copy到image中
 
用winapi中的
functionBitBlt(DestDC:HDC;X,Y,nWidth,Height:Integer;SrcDC;HDC;XSrc,YSRC:Ingeger;Rop:LongInt):Bool;
例如有下面两个控件
image1 width 100 height 100
,
image2 width 400 height 100
其中1是我们的目标,2是大放图的地方,假设有四个小图放在一张大图里,
那么程序将是这样的。
procedure showANI;
var I:integer;
begin
for I:=0 to 3 do
begin
BitBlt(image1.handle,0,0,100,100,image2.handle,i*100,0,srccopy);
sleep(3000);
end;
end;
 
以下的代码是bmp上有2幅图的例子,每幅图宽度60,间隔18,办法就是把后面图向前提18,其余类推,仅供参考
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i,j:integer;
color:TColor;
begin
for i:= 0 to Image2.Width do
for j:= 0 to Image2.Height do
begin
if(i<60)then
begin
Color:=Image2.Canvas.Pixels[i,j];
Image1.Canvas.Pixels[i,j]:=Color;
end;
if(i>60)then
begin
Color:=Image2.Canvas.Pixels[i+18,j];
Image1.Canvas.Pixels[i,j]:=Color;
end;
end;
end;
 
多人接受答案了。
 
后退
顶部