Home > Software engineering >  Cropping an Image using 4 co-ordinates in javascript
Cropping an Image using 4 co-ordinates in javascript

Time:12-07

I want to crop an Image using the 4 co-ordinate points in javascript

E.g:- topleft,topright,bottomleft,bottomright

I have checked with the drawImage() function which is present in cropper.js but I hope It can return only in square format because it follows

drawImage(sx,sy,sh,sw,nx,ny,nh,nw);

I need a image to be cropped using 4 cordinates.

CodePudding user response:

You can use clip in canvas to do that

const img = document.querySelector('img')
const canvas = document.querySelector('canvas')
const ctx = canvas.getContext('2d')
canvas.width = img.naturalWidth
canvas.height = img.naturalHeight

const path = [{
    x: 10,
    y: 10
  },
  {
    x: 290,
    y: 30
  },
  {
    x: 270,
    y: 270
  },
  {
    x: 50,
    y: 10
  },
]

ctx.beginPath()
ctx.moveTo(path[0].x, path[0].y)
for (const { x, y } of path.slice(0, -1)) {
  ctx.lineTo(x, y)
}
ctx.closePath()
ctx.clip()

ctx.drawImage(img, 0, 0)
<canvas></canvas>
<img src="https://mdn.github.io/dom-examples/canvas/pixel-manipulation/assets/rhino.jpg">

  • Related