如何在一个黑白图象(2bit)划红色的(宽度大于1)的线 (100分)

  • 主题发起人 主题发起人 mafan200
  • 开始时间 开始时间
第一种办法:
var
Bmp : TBitmap;
begin
Bmp := TBitmap.Create;
Bmp.Width := Width;
Bmp.Height := Height;
Bmp.PixelFormat := pf1Bit;

with Bmp.Canvas do begin
Brush.Color := clBlack;
Ellipse(1,1,100,100);

BMP.PixelFormat := pf16Bit;
Pen.Color := clRed;
Pen.Width := 10;
MoveTo(10,10);
LineTo(101,202);
end;
Canvas.Draw(0,0,Bmp);
Bmp.Free;
end;

第二种办法:
var
Bmp,BMP2 : TBitmap;
begin
Bmp := TBitmap.Create;
Bmp2 := TBitmap.Create;
Bmp.Width := Width;
Bmp.Height := Height;
Bmp2.Width := Width;
Bmp2.Height := Height;

Bmp.PixelFormat := pf1Bit;

with Bmp.Canvas do begin
Brush.Color := clBlack;
Ellipse(1,1,100,100);

BMP2.PixelFormat := pf16Bit;
BMP2.Canvas.Pen.Color := clRed;
BMP2.Canvas.Pen.Width := 10;
BMP.Transparent := TRUE;
BMP2.Canvas.Draw(0,0,BMP);
BMP2.Canvas.MoveTo(10,10);
BMP2.Canvas.LineTo(101,202);
end;
Canvas.Draw(0,0,Bmp2);
Bmp.Free;
BMP2.Free;
end;
 
to 吕雪松:Sorry!这两天收得到MAIL,但是进不来;
第一种办法:图像会变色(百的变蓝的),可能因为是灰度图的原因(我用的
是8BIT不是2BIT,SORRY),但如果用15BIT就可以,但图像刷新的速度实在是太慢了
我在上面划的框显示起来很差劲;
第二种办法:我先前试过,但同样是显示速度的问题
 
8bit的话,只有256色,你还要对图像进行抖动,平滑的操作。
 
to Chenlili:我原来就是这样的,应该没问题(如果不是要在灰度图上划红线的话)
 
一劳永逸的办法:找把尖嘴钳,将连接显示器和主机的视频线插头中
绿色和蓝色信号的针脚拔掉。

务必先征求老师或家长的同意后再做,切记!
 
mafan200:如果要继续请提前,否则请结束问题,谢谢
 
后退
顶部