如何从画布中查找图像文件的大小
How to find size of an image file from canvas?
这里有一个调整jpeg image
大小的js函数。函数将原始image
的大小调整为width x height
。alert
中的image.size
返回undefined
。mainCanvas.toDataURL.length
是调整大小的图像文件的大小吗?如果没有,调整大小后如何查找图像文件大小?
function resize(image, width, height) {
var mainCanvas = document.createElement("canvas");
mainCanvas.width = width;
mainCanvas.height = height;
var ctx = mainCanvas.getContext("2d");
ctx.drawImage(image, 0, 0, width, height);
$('#uploaded_file_hidden_file').val(mainCanvas.toDataURL("image/jpeg"));
$('#file_size').val(Math.ceil(image.size/1024));
alert(image.size);
};
如果您所说的size是指以字节为单位的文件大小,则image元素将不具有类似image.size
的size属性。你需要将画布转换成一个斑点,然后你就可以得到大小:
// canvas.toBlob() is not well supported, so here is the polyfill just in case.
// https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob#Polyfill
if (!HTMLCanvasElement.prototype.toBlob) {
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
value: function (callback, type, quality) {
var binStr = atob( this.toDataURL(type, quality).split(',')[1] ),
len = binStr.length,
arr = new Uint8Array(len);
for (var i=0; i<len; i++ ) {
arr[i] = binStr.charCodeAt(i);
}
callback( new Blob( [arr], {type: type || 'image/png'} ) );
}
});
}
function resize(image, width, height) {
var mainCanvas = document.createElement("canvas");
mainCanvas.width = width;
mainCanvas.height = height;
var ctx = mainCanvas.getContext("2d");
ctx.drawImage(image, 0, 0, width, height);
$('#uploaded_file_hidden_file').val(mainCanvas.toDataURL("image/jpeg"));
// Canvas to blob so we can get size.
mainCanvas.toBlob(function(blob) {
$('#file_size').val(Math.ceil(blob.size/1024));
alert(blob.size);
}, 'image/jpeg', 1);
};
要找出文件的最终大小,当然这是可能的,请检查包含指定格式的图像表示的数据URI的长度
const imageFileSize = Math.round(mainCanvas.toDataURL('image/jpeg').length);
相关文章:
- 如何使用谷歌应用程序脚本从电子邮件中提取内联文件/图像
- 当我在操作属性中写入页面名称时,文件图像不会上传
- 将已编辑的文件(图像)数组发送到php脚本
- 预览上传的文件(图像)
- 使用 src 在 PHP 中链接文件(图像,js)
- 通过javascript处理默认配置文件图像的更好方法
- 使我的想法成为可能,为画布输入文件图像命名
- 跨原点图像加载(twitter配置文件图像)
- 输入文件(图像)显示空数组,如果数组中有数据的话
- 如何通过tastypie上传文件/图像
- 上传到nodejs时损坏的文件/图像
- 获取上载的文件/图像的名称
- Django:除主页模板外,静态文件图像URL路径中断
- Parsley验证文件图像没有'不起作用
- 如何在单击'时设置文件/图像的名称;将图像另存为'
- 上载要分析的配置文件图像
- 将数据库mysql中的文件图像插入excel
- 如何使用twitter api(js)获取用户配置文件图像
- 在javascript中从本地驱动器读取文件/图像
- 使用ajax上传文件图像时页面冻结