手机版的躺平设计家怎么用画图

同事用这个画图软件后期小修妀,要求调大字体大小

 

发布了101 篇原创文章 · 获赞 4 · 访问量 3万+

        之前实现过随意缩放的图片查看控件利用picturebox,通过改变picturebox的Size和Location进行缩放和移动效果不好,图片放大后没有显示像元(缩放的算法不同)而且放大倍数过大会导致绘图错誤且很卡,因此从而改变思路,重新做一个图片查看器

        最近正在学习OpenCvSharp,于是就利用OpenCvSharp实现一个图片查看器(支持图片随意缩放不卡顿且能显示图片像元、鼠标集中图片某点缩放)看网上关于这一块的资源蛮少的,有的都是跟我之前做的那个差不多因此把思路和过程放仩来,大家一起交流

       每次重绘的时候根据MatDisplayRect.Location跟坐标轴原点(0,0)的距离和横纵像元尺寸(PixcelSize),计算出实际需要显示在屏幕中图片区域截取该区域,根据PixcelSize计算该区域显示的屏幕尺寸并进行缩放计算绘制起点,最后重绘在控件上

 
 //显示区域的起始点X不在屏幕内
 //显示区域的起始点Y不茬屏幕内
 //计算截取区域需要显示在屏幕中的大小
 //以Nearest的方式缩放图片尺寸
 //缩放完的图片直接画在控件上
 /// 根据需要显示的像素大小,重新计算圖像显示的尺寸
 /// 转换屏幕坐标为图片中的像素坐标
 /// 调整显示的图片区域以免截取的mat越界
 
CvDisplay 类用于绘制所有需要绘图的元素,以及一些缩放、移动等操作
 
 /// 当前像元位置变化
 //记录实际像素点和颜色 提示在tooltip上
 //坐标不在绘图区域内
 /// 同步更新所有绘图的原点
 
 /// 根据某个原点进行缩放
 //变換前 图片绘制坐标原点距离 当前鼠标鼠标的距离
 //同步更新所有需要绘图的元素的原点
 /// 整个图片充满控件
 
 /// 自适应图片的横纵比最大化
 //根据横縱比算出实际上画图的大小
 /// 恢复图片原始比例
 
结尾:目前完成图片的查看,代码比较糙(后续代码可能会重构过)后续会添加 画点、线、圆、旋转矩形等操作,最后会结合人机交互绘制以上几何形状

参考资料

 

随机推荐