我正在开发一个 Webworks 应用程序,我需要调整图像大小以上传到服务器。我正在使用 JQuery Mobile,该应用程序需要在 OS6 及更高版本上运行。用户可以使用相机或从设备中选择图像。相关代码如下:
function handleOpenedFile(fullPath, blobData) {
var image = new Image();
image.src = fullPath; //path to image
image.onload = function () {
var resized = resizeMe(image); // send it to canvas
//Do stuff with the DataURL returned from resizeMe()
};
}
function resizeMe(img) {
var canvas = document.createElement('canvas');
var width = Math.round(img.width / 2);
var height = Math.round(img.height / 2);
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, width, height);
return canvas.toDataURL("image/jpeg", 0.8);
}
然后我使用 DataURL 中的 Base64 上传到服务器。图像被缩放,但它们出现乱码。部分图像四处移动,颜色变得奇怪。如果您在画布上绘制它而不进行任何缩放,则不是缩放本身会弄乱图像,因为它会出现乱码。
我已经广泛搜索了 SO 和 BB Dev 论坛,但没有运气。
有谁知道如何解决这个问题或有其他建议来调整图片大小以进行上传?