Load-image.js base64映像的大小是filereader base64映像的10倍?
当你使用iPhone时,我会使用load-image.js获得方向正确的base64。它可以工作,它将图像转换为base64,但是如果我上传一个70k的图像,那么当它是base64图像时,它将是701k 如果我只使用fileReader,那么它作为映像是70k,作为base64是70k 那么,如何使用load-image.js使其变得更小、更轻呢 这就是我现在使用load-image.js的方式Load-image.js base64映像的大小是filereader base64映像的10倍?,base64,Base64,当你使用iPhone时,我会使用load-image.js获得方向正确的base64。它可以工作,它将图像转换为base64,但是如果我上传一个70k的图像,那么当它是base64图像时,它将是701k 如果我只使用fileReader,那么它作为映像是70k,作为base64是70k 那么,如何使用load-image.js使其变得更小、更轻呢 这就是我现在使用load-image.js的方式 var file=''; file = document.getElementById('file-
var file='';
file = document.getElementById('file-input').files[0],
options = {
canvas: true,
maxWidth: 600,
};
if (!file) {
return;
}
// Use the "JavaScript Load Image" functionality to parse the file data
loadImage.parseMetaData(file, function(data) {
// Get the correct orientation setting from the EXIF Data
if (data.exif) {
options.orientation = data.exif.get('Orientation');
}
// Load the image from disk and inject it into the DOM with the correct orientation
loadImage(
file,
function(canvas) {
var imgDataURL = canvas.toDataURL();
所以我使用的是imgdataul中的base64,它的文件大小变得更大了!我使用load-image.all.min.js文件
我所要做的就是将一个图像转换为base64,并且当我在iPhone上进行转换时,它从一开始就具有正确的方向
非常感谢您的任何意见,谢谢
编辑:
我刚刚意识到上传的图像是一个.jpg文件,当使用filereader上传时,它在base64中仍然是一个.jpg文件,但load image将其更改为.png图像。我想这就是问题所在。那么,我怎样才能通过加载图像将其添加到.jpg中呢?一旦base64'ed,任何东西都会变大大约33%
因此,除非在传输过程中丢失了某些内容,或者您在接收和base64解码后正在检查图像,否则70K图像不能是70K base64流。每3个字节变成4个base64字符,因此70K必须至少变成93K
现在-什么可以使图像变大10倍?load-image.js具有缩放功能。您确定您发送的图像在到达时与离开时的大小相同(以像素为单位)?或者可能与画布分辨率有关:
aspectRatio:
将图像裁剪到给定的纵横比(例如16/9)。
设置aspectRatio也会启用裁剪选项
像素比率:
定义画布像素与屏幕上物理图像像素的比率
屏幕。应设置为window.devicePixelRatio,除非
图像不会在屏幕上渲染。默认值为1,需要画布:
对
更新:要以给定格式和质量发送图像,请明确指定它们:
var imgDataURL = canvas.toDataURL('image/jpeg', 1.0);
默认设置可能依赖于浏览器。我正在Firefox中成功上传JPEG文件。除非您在某处设置了一些覆盖…?谢谢。我刚刚意识到上传的图像是一个.jpg文件,当使用filereader上传时,它在base64中仍然是一个.jpg文件,但load image将其更改为.png图像。我想这就是问题所在。那么,如何使用load image将其添加到.jpg中呢?这是通过
toDataURL()
两个参数完成的—类型和质量。您需要toDataURL('image/jpeg',1.0)
;谢谢:-)我将其设置为0.75,得到的图像为66k。很好!