问题描述
在inkpresenter上绘制绘制了一个不规则区域,画笔宽度不为1,如果在绘制的过程中记录坐标,记录的是鼠标经过的位置,而不是绘制区域的边界坐标,如果要记录绘制区域的边界像素点的坐标,有什么方法呢?(在java中有一个Shape.getPathIterator,不知在C#中有没有类似的接口)
解决方案
解决方案二:
遍历图片像素点,根据你得画笔颜色获取对应的点
解决方案三:
遍历像素点的方法有考虑过,但是要处理的图片数量很大,计算量也很大,所以就想说能不能有个像java中那样的提取边缘像素的坐标点的接口
解决方案四:
直接遍历效率是很低的,你可以搜一下油漆桶的填充算法,一个是填充,一个是描边,改一改就可以借鉴了。
解决方案五:
由鼠标的坐标来计算出边界坐标,鼠标坐标为划出线条的中间,那线条的粗度左右加减粗度/2,就是边界Y坐标,X坐标等于鼠标X坐标
解决方案六:
加一半线宽就是外缘不过Shape.getPathIterator并非这么简单,他是考虑到沁润效果的
解决方案七:
通过鼠标坐标计算边界坐标的方法只适用于区域宽度和画笔宽度相等的情况,但是如果画的是任意图形的区域的话,提取边缘像素点坐标就不仅仅是鼠标坐标减去画笔宽度的一半了。大家有没有什么好办法呢?
解决方案八:
直接说你要干嘛。。。
解决方案九:
用画笔绘制了一个任意图形,用什么方法能够记录绘制区域的边缘像素点的坐标,而不是记录鼠标经过的点的坐标
时间: 2024-10-30 10:33:31