要实现图片格式的转换,需要使用canvas
标签。首先创建一个canvas
标签,然后获取到对应的context
,接着通过canvas.toDataURL()
方法将图片转换成指定格式的Base64编码字符串。
// 将图片转换为PNG格式
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var img = new Image();
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
var pngBase64 = canvas.toDataURL('image/png');
}
img.src = 'example.jpg';
要实现图片的精准裁剪处理,同样需要使用canvas
标签。创建一个canvas
标签,然后获取到对应的context
,接着通过context.drawImage()
方法将原始图片绘制到canvas
上,再使用context.getImageData()
方法获取到指定区域的像素数据,最后将像素数据绘制到另一个canvas
上即可。
// 对图片进行精准裁剪
var sourceCanvas = document.createElement('canvas');
var sourceCtx = sourceCanvas.getContext('2d');
var targetCanvas = document.createElement('canvas');
var targetCtx = targetCanvas.getContext('2d');
var img = new Image();
img.onload = function() {
sourceCanvas.width = img.width;
sourceCanvas.height = img.height;
targetCanvas.width = 100;
targetCanvas.height = 100;
sourceCtx.drawImage(img, 0, 0);
var imageData = sourceCtx.getImageData(50, 50, 100, 100);
targetCtx.putImageData(imageData, 0, 0);
var croppedBase64 = targetCanvas.toDataURL('image/png');
}
img.src = 'example.jpg';