// this.cropImageTListBase64(item.covers, 1)
// .then((croppedBase64Img) => {
// // 在这里处理切割后的图片的 base64 数据
// this.List[index].covers = croppedBase64Img;
// console.log(croppedBase64Img)
// })
// .catch((error) => {
// console.log(33444)
// // 处理错误情况
// console.error(error);
// });
cropImageTListBase64(url, ratio, startX = 0, startY = 0) {
return new Promise((resolve, reject) => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const img = new Image();
img.crossOrigin = 'anonymous';
img.onload = function() {
const originalWidth = img.width;
const originalHeight = img.height;
const targetHeight = 1000; // 将目标高度改为 900
const targetWidth = Math.round(targetHeight * ratio); // 根据比例计算目标宽度
canvas.width = targetWidth;
canvas.height = targetHeight;
// 在画布上绘制网络图片的指定区域
ctx.drawImage(
img,
startX,
startY,
originalWidth - startX,
(originalWidth - startX) / ratio,
0,
0,
targetWidth,
targetHeight
);
try {
const base64 = canvas.toDataURL('image/png');
resolve(base64);
} catch (error) {
reject(error);
}
};
img.onerror = function() {
reject(new Error('Failed to load image'));
};
img.src = url;
});
},
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
649494848