如何在IMAGE上反相显示图象?(100分)

  • 主题发起人 主题发起人 xmzhao
  • 开始时间 开始时间
试试这个

procedure TForm1.Button1Click(Sender: TObject);
var bmp:TBitmap;
begin
bmp:=TBitmap.Create;
bmp.LoadFromFile('c:/1.bmp');
with bmp.Canvas do begin
CopyMode:=cmNotSrcCopy;
Draw(0,0,bmp);
end;
Image1.Picture.Graphic:=bmp;
bmp.free;
end;
 
不亏是大侠,已经测试通过,肯定加分乐。但我想:
⑴在QRDBImage中反相显示
⑵从一个IMAGE 反相COPY到另一个IMAGE
⑶能不能直接在IMAGE上LoadFromFile反相显示
 
LoadFromFile后用扫描后再画出反显的图像
 
TO:lxv 有例程?
 
(1)用image代替
(2)为了使用方便可以定义为函数 例如:
function ConvertBMP(SourceBMP:TBitmap):TBitmap;
begin
with SourceBMP.Canvas do begin
CopyMode:=cmNotSrcCopy;
Draw(0,0,SourceBMP);
end;
Result.Assign(SourceBMP);
end;
使用时:image2.picture.bitmap:=convertbmp(image1.picture.bitmap)

(3)你自己也可以做一个类似的函数 如convertBMPFILE(SourceFile:string)

 
or就可以
 
To:Menxin
不行乐,使用函数时出错,并且函数不能定义,这就搞不懂了,函数定义为什么会出错。
如:function ConvertBMP(SourceBMP:TBitmap):TBitmap;


 
哈哈,这是让你自己定义这个函数啊,你没有声明就使用了吧?
 
是我错了,再来一次。
若不声明,提示有错,但能编译运行,不过函数运行出错。
若声明,声明语句出错,不能编译。
看来我连声明也不会了

 
不会很难吧!我很着急了,加油。
 
不好意思,得这样:

function ConvertBMP(SourceBMP:TBitmap):TBitmap;
var BMP:TBitmap;
begin
BMP:=TBitmap.Create;
BMP.Assign(SourceBMP);
with BMP.Canvas do begin
CopyMode:=cmNotSrcCopy;
Draw(0,0,SourceBMP);
end;
Result:=BMP;
end;

 
menxin大虾搞定了,但为什么错的是错了呢?函数在哪个位置声明?不声明行不行?
 
我为什么收不到信呢?
 
呵呵,我也收不到。
声明就这样
....
var
Form1: TForm1;

function ConvertBMP(SourceBMP:TBitmap):TBitmap;

implementation

{$R *.DFM}

......
 
非常多谢menxin,节日愉快!这就加分。
 
多人接受答案了。
 
后退
顶部