Ich habe canvas
verwendet, um eine elektronische Signatur zu erstellen, aber nach der Unterschrift des Benutzers war zu viel Platz übrig. Gibt es eine Möglichkeit, den Leerraum zu erfassen?
Beispiel-Originalbild:
Ich habe den Bereich ermittelt, den die Maus während des Signiervorgangs passiert hat, und die Koordinaten des roten Bereichs erhalten, wie unten gezeigt.
Übergeben Sie es dann an das img
-Objekt und zeichnen Sie es dann auf img
对象,再绘制到 canvas
, um den roten Bereich zuzuschneiden.
Gibt es eine andere Möglichkeit, es zu tun?
Danke!
首先是可以做到的,
canvas.getContext('2d').getImageData(0, 0, 宽, 高)
会返回一个当前canvas的图像数据对象,其中有一个data属性,是一个一维数组,这个一维数组,每4个下标分别代表了一个像素点的R,G,B,A的值,楼主只需要遍历这些值就能找到边界了.下面是伪代码实现通过
ImageData
扫描像素点,一行一行的扫描,维护左上角右下角坐标,或者右上角左下角坐标。简单的对carvas进行放大不知道能不能满足你的需求,
看楼主的意思是已经得到红框内的图片,那么就可以知道图片的宽高,在根据carvas的宽高计算图像和carvas的缩放比
通过ctx.scale(widthScale, heightScale)方法设置放大比例。
然后ctx绘制图像。
楼主解决了呢,获取指定坐标的矩形图片?