(Delphi 7.0)
窗体上 Timage1控件中 加载jpg图片显示。(注:jpg图片大 是根据timge大小自己动缩放显示的)
属性:
Timage1.Stretch := true;现提供出坐标 要从Timage1中截取坐标提供的区域到Timage2中? 小弟写了些代码但未能实现 请求帮助!var
Bitmap: TBitmap;
MyRect, MyOther: TRect;
begin MyRect := Rect(47,393,960,544); MyOther := Rect(0,0, 913,Image1.Height);
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('d:\3.bmp');
Image2.Canvas.CopyRect(MyOther,Bitmap.Canvas,MyRect);
Image2.Picture.SaveToFile('D:\1111.jpg');
Bitmap.Free;
end;
这段代码,运行后 MyRect截取的区域不正确!并且显示在Image2中不能根据Image2大小缩放.但image2.stretch := true的。
窗体上 Timage1控件中 加载jpg图片显示。(注:jpg图片大 是根据timge大小自己动缩放显示的)
属性:
Timage1.Stretch := true;现提供出坐标 要从Timage1中截取坐标提供的区域到Timage2中? 小弟写了些代码但未能实现 请求帮助!var
Bitmap: TBitmap;
MyRect, MyOther: TRect;
begin MyRect := Rect(47,393,960,544); MyOther := Rect(0,0, 913,Image1.Height);
Bitmap := TBitmap.Create;
Bitmap.LoadFromFile('d:\3.bmp');
Image2.Canvas.CopyRect(MyOther,Bitmap.Canvas,MyRect);
Image2.Picture.SaveToFile('D:\1111.jpg');
Bitmap.Free;
end;
这段代码,运行后 MyRect截取的区域不正确!并且显示在Image2中不能根据Image2大小缩放.但image2.stretch := true的。
解决方案 »
- 菜鸟求助 关于MAPX在delphi中的应用
- 今天太阳很大,汗如雨下
- 怎样把char类型(编程)转换成Money类型(数据库)???
- 动态销毁一个Panel的问题
- 怎样控制IE工具条的隐藏和显示以及他的位置?
- 如何单击dbgrideh的表头就能使数据表里的数据按表头字段排序?
- 请问,用哪些方法在DbGrid表头显示中文最好?在线等…
- 高分求购《Delphi 5.x ADO/MTS/COM+高级程序设计篇》完整电子书
- ※如何删除QQ登录对话框下拉列表中的部分号码√
- 紧急求助: 如何跟另一台internet的电脑(已知IP地址)通讯,如:取数据或发送信息 如有程序请发 Email:[email protected] 分数如嫌不够我可单独再加
- 求word,Excel等文件转换成PDF文件的控件
- Overload,Constructor,Destructor(功课,请看看对吗。测试能力中。)
Bitmap,Bitmap2: TBitmap;
MyRect, MyOther: TRect;
begin MyRect := Rect(47,393,960,544); MyOther := Rect(0,0, 913,Image1.Height);
Bitmap := TBitmap.Create;
Bitmap2 := TBitmap.Create;
Bitmap.LoadFromFile('d:\3.bmp');
Bitmap2.Width:=MyRect.Right-MyRect.Left;
Bitmap2.Height:=MyRect.Bottom-MyRect.top; Bitmap2.Canvas.CopyRect(MyOther,Bitmap.Canvas,MyRect);
Image2.Picture:=picuure(Bitmap2);
Bitmap.Free;加一个 Bmp 图片 再给Imgae2
试过 但不明白picuure(Bitmap2)是? 我改成Image2.Picture.Assign(bitmap2); 运行后 坐标截取的大小 不是想要的结果
2.copyrect时,画一张原图大小的BITMAP,然后直接从BITMAP上拷贝,当然得按你缩放后的比例来算需要拷贝的区域
GDI+ 如何实现呢?请指点下
function DrawStrectBmp(sFile : string;Bmp : TBitmap ; iDrawW : integer) : single;
var GpBmp : TGpBitmap;
Gd : TGpGraphics;
aSize : TSize;
ih : integer;
begin
GpBmp := TGpBitmap.Create(sFile);
ih := (iDrawW * GpBmp.Height / GpBmp.Width);
Bmp.Width := iDrawW;
Bmp.Height := ih;
Result := iDrawW / GpBmp.Width;
Gd := TGpGraphics.Create(Bmp.Canvas.Handle);
Gd.DrawImage(GpBmp,GpRect(0,0,Bmp.Width,Bmp.Height),0,0,GpBmp.Width,GpBmp.Height,utpixel);
Freeandnil(Gd);
Freeandnil(GpBmp);
end;调用
var Bmp : TBitmap;
precent : single;
begin
Bmp := TBitmap.Create;
precent := DrawStrectBmp('file',Bmp,img1.Width);
img1.Picture.Assign(Bmp);
Bmp.Free;
end;拷贝时,建一张原图大小的TBitmap,然后用你在img1上给出的trect按precent进行缩放,然后在原图的tbitmap上拷贝即可