Hey is a decentralized and permissionless social media app built with Lens Protocol 馃尶
at main 40 lines 991 B view raw
1import type { Area } from "react-easy-crop"; 2 3const createImage = (url: string): Promise<HTMLImageElement> => 4 new Promise((resolve, reject) => { 5 const image = new Image(); 6 image.addEventListener("load", () => resolve(image)); 7 image.addEventListener("error", (error) => reject(error)); 8 image.src = url; 9 }); 10 11const getCroppedImg = async ( 12 imageSrc: string, 13 pixelCrop: Area | null 14): Promise<HTMLCanvasElement | null> => { 15 const image = await createImage(imageSrc); 16 const canvas = document.createElement("canvas"); 17 const ctx = canvas.getContext("2d"); 18 if (!ctx || !pixelCrop) { 19 return null; 20 } 21 22 canvas.width = image.width; 23 canvas.height = image.height; 24 ctx.drawImage(image, 0, 0); 25 26 const data = ctx.getImageData( 27 pixelCrop.x, 28 pixelCrop.y, 29 pixelCrop.width, 30 pixelCrop.height 31 ); 32 33 canvas.width = pixelCrop.width; 34 canvas.height = pixelCrop.height; 35 ctx.putImageData(data, 0, 0); 36 37 return canvas; 38}; 39 40export default getCroppedImg;