小菜最近在做一图片处理的软件,需要将不同大小的图片在有限的区域内显示出来,当然要用到缩放功能,之后要做框选剪切功能,但在图像一原大小显示时没问题,图像经过缩放后,鼠标mousedown时的点和矩形框的起始点不再一位置上,望各位大虾帮忙,指点一二。在此先谢过了分不多,见谅
解决方案 »
- dephi single to int 类型转换
- 如何把AnsiString中某个字符的位置转为WideString中这个字符的位置?
- 高分求解:delphi如何使用C写的sdk???
- 请求W IN98设置问题.高分.
- aiirii(ari-爱的眼睛),请进来领分!-5
- 新手入门,简单问题
- BorlandSoft的产品非常全面,我愿意提供BorlandSoft.com的邮箱,大家意下如何?限30000个。
- 怎样在一创建的TBitmap上画线
- 请问如何用Delphi捕获BED错误
- 文件传输:服务器和客户端连接问题。(在线等)
- 为了某人的PP
- lazarus文化衫样品做好了,上图了,相当雷人,来看看
首先你要知道缩放比例,然后根据鼠标在image上的坐标范围,去放大这个比例系数,去计算,实际的bitmap上的范围
那样会不会改变图片的分辨率?
我是用到image.canvas 从一个image剪掉到另一个
有种截屏的方法 但那会改变图片的分辨率
对后面处理有影响
是这样子吗?
记录图片缩放的倍数,鼠标点击传进去的x,y是以image为参照的。
然而这个x,y与image.picture.bitmap上的像素点是不对应的。
那如果图像是放大n倍后剪切,x,y如何调整?
缩放image并不会自动处理其对应的bitmap所以要自己来做对应处理工作
如下所示:Procedure TfrmMain.SetImageSize(w ,h : integer; img : TImage);
begin
with img do
begin
Width := w;
Height := h;
picture.bitmap.width:= w;
picture.bitmap.height:= h;
end;
end;