虽然我的方法有点笨,但是总算可以完成了。大家如果有其他方法,敬请赐教。procedure TForm1.Button1Click(Sender: TObject);
var
Rect : TRect;
Image1,Image2 : TImage;
begin
Image1 := TImage.Create(Form1);
Image2 := TImage.Create(Form1);
if OpenDialog1.Execute then
Image1.Picture.LoadFromFile(OpenDialog1.FileName); Image1.Width := 864;
Image1.Height := 600;
Image1.Stretch := True; Image2.Width := 864;
Image2.Height := Image1.Height;
Rect.Left := Image2.Left;
Rect.Top := Image2.Top;
Rect.Right := Image2.Left + Image2.Width;
Rect.Bottom := Image2.Top + + Image2.Height;
Image2.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);
if SaveDialog1.Execute then
Image2.Picture.SaveToFile(SaveDialog1.FileName);
Image1.Free;
Image2.Free;
end;
var
Rect : TRect;
Image1,Image2 : TImage;
begin
Image1 := TImage.Create(Form1);
Image2 := TImage.Create(Form1);
if OpenDialog1.Execute then
Image1.Picture.LoadFromFile(OpenDialog1.FileName); Image1.Width := 864;
Image1.Height := 600;
Image1.Stretch := True; Image2.Width := 864;
Image2.Height := Image1.Height;
Rect.Left := Image2.Left;
Rect.Top := Image2.Top;
Rect.Right := Image2.Left + Image2.Width;
Rect.Bottom := Image2.Top + + Image2.Height;
Image2.Canvas.StretchDraw(Rect,Image1.Picture.Graphic);
if SaveDialog1.Execute then
Image2.Picture.SaveToFile(SaveDialog1.FileName);
Image1.Free;
Image2.Free;
end;
解决方案 »
- delphi如何实现这样样式的提示框
- 如何调用Dll文件?
- TdxDBGrid中,如何实现自己绘制编辑控件
- 200分求解,如何在TWebBrowser中能实现复制操作!
- 在线等候!--如何用程序语句来修改DBGrid中某一个Cell中的值?
- DTS问题,请教高手
- 如何向c#webservice中传参并获取返回值
- 简单的问题,回答者都有分!(1)
- 如何得到FTP上传断点!尽我能力给分(43分)目前只允许我给这么多分
- swflash.ocx插件动态随窗体改变大小,我修改width和height不行……哪位试过
- 多层数据库问题,向高手请教,来者送分!!!!!!!!!!!
- 怎样屏蔽DELPHI的错误消息,自己写汉语的错误消息
var
Image1,Image2: TImage;
begin
Image1 := TImage.Create(self); try
Image2 := TImage.Create(self);
try
if OpenDialog1.Execute then
begin
Image1.Picture.LoadFromFile(OpenDialog1.FileName);
Image2.width:=864;
Image2.Height :=Trunc(864*Image1.Picture.Height/Image1.Picture.Width);
Image2.Canvas.StretchDraw(Rect(0,0,864,Trunc(864*Image1.Picture.Height/Image1.Picture.Width)),Image1.Picture.Bitmap );//用Bitmap 而非Graphic
end;
if SaveDialog1.Execute then
Image2.Picture.SaveToFile(SaveDialog1.FileName);
finally
Image2.Free;
end;
finally
Image1.Free;
end;
end;
var
b1,b2:Tbitmap;
begin
b1:=tbitmap.Create;
b2:=tbitmap.Create;
b2.LoadFromFile('g:\111.bmp');b1.Width:=864;
b1.Height:=600;StretchBlt(b1.canvas.Handle,0,0,b1.Width,b1.Height,b2.Canvas.Handle,0,0,b2.Width,b2.Height,SRCCOPY );
b1.SaveToFile('g:\222.bmp');
b2.FreeImage;
b1.FreeImage;
b2.free;
b1.free;
end;
单色是什么意思?
你是指灰度图象吗?
gray := (r + g + b) div 3;
或 gray := round(r*0.5 + g *0.3 + b * 0.2)(系数记得不太清,还请查查书);
r,g,b分别指三个分量上的灰度直.
还要注意越界!
bmp1,bmp2: TBitmap;
begin
bmp1:=TBitmap.Create;
bmp2:=TBitmap.Create;
try
bmp1.loadfromfile('c:\1.bmp'); //
bmp2.width:=200; //
bmp2.height:=300; // 以上可以改为你需要的尺寸
bmp2.canvas.stretchdraw(rect(0,0,bmp2.width,bmp2.height),bmp1);
bmp2.savetofile('c:\2.bmp');
finally
bmp1.Free;
bmp2.Free;
end;