图片局部放大选中部分错位解决办法
2014-05-15 16:20
106 查看
情景如下:
在窗体上添加一个Picturebox用来加载图片,当鼠标在Picturebox移动时圈定一个矩形区域,并将矩形区域放大显示在Panel控件上。
问题:
已PictureBox作为坐标参考系,动态获得跟随鼠标的矩形框起始坐标,扫描此矩形框内图片像素时,获得的像素信息与视觉看到的信息发生错位
问题原因:
鼠标坐标参照PicBox,但是像素坐标参照图片本身,因为图片长宽与picBox不能完全对应,设置的时候将图片居中显示,所以实际上图片是超出了控件的范围的。这时加入鼠标取到的坐标是(x,y),那么像素坐标是(x1,y1),其其中x1>=x,y1>=y。这时将像素坐标以(x,y)进行处理,所以出现错位
解决办法是:
对图片坐标与控件坐标进行转换,将控件坐标转换为图片坐标即可。
转换代码演示:
在窗体上添加一个Picturebox用来加载图片,当鼠标在Picturebox移动时圈定一个矩形区域,并将矩形区域放大显示在Panel控件上。
问题:
已PictureBox作为坐标参考系,动态获得跟随鼠标的矩形框起始坐标,扫描此矩形框内图片像素时,获得的像素信息与视觉看到的信息发生错位
问题原因:
鼠标坐标参照PicBox,但是像素坐标参照图片本身,因为图片长宽与picBox不能完全对应,设置的时候将图片居中显示,所以实际上图片是超出了控件的范围的。这时加入鼠标取到的坐标是(x,y),那么像素坐标是(x1,y1),其其中x1>=x,y1>=y。这时将像素坐标以(x,y)进行处理,所以出现错位
解决办法是:
对图片坐标与控件坐标进行转换,将控件坐标转换为图片坐标即可。
转换代码演示:
/************************************************************************/ /* 控件坐标与图像坐标转换 */ /************************************************************************/ private Point CoordinationTransformation(Point p){ int l = (bitmap.Width - pictureBox1.Width) / 2; int h = (bitmap.Height - pictureBox1.Height) / 2; p = new Point(p.X+l,p.Y+h); return p; }
相关文章推荐
- 解决zencart首页商品图片显示错位的办法
- UIScrollView中图片放大后不居中,或居中后移动有偏差解决办法
- ImageView的几种对图片的缩放处理 解决imageview放大图片后失真问题解决办法
- 在win8平板下用QQ截图时局部放大的解决办法
- Android ListView,GridView,RecyclerView图片加载错位闪动问题解决办法
- 【转】OpenCv图像叠加时png图片的透明部分无法透明的解决办法
- Android之PhtoView设置图片放大缩小后,图片显示在界面上左上角的解决办法
- Android PhtoView 图片放大缩小后,图片显示在界面上左上角的解决办法
- SDWebImage在UITableView部分CELL图片无法加载的解决办法
- iscrollJs使用zoom插件的时候,图片放大模糊解决办法
- 关于Autocad中部分文字无法选中的解决办法
- OpenCv图像叠加时png图片的透明部分无法透明的解决办法
- Unity3D的GUI图片放大后会有”一条诡异的线“的解决办法
- win10系统qq截图时屏幕局部会自动放大如何解决 win10截图自动放大解决办法(2种方法)
- recyclerview嵌套Gridview的图片错位或显示不全解决办法实验
- 部分安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
- ListView图片错位解决办法
- OpenCv图像叠加时png图片的透明部分无法透明的解决办法
- ListView图片错位解决办法
- UIScrollView中图片放大后不居中,或居中后移动有偏差解决办法