【发布时间】:2014-02-24 14:33:37
【问题描述】:
所以,我有一个脚本用于从网络摄像头捕获视频,然后创建一个 gif:
var base64data;
var img = document.createElement('img');
var reader = new window.FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
base64data = reader.result;
img.src = base64data;
}
因此,使用此脚本,我从网络摄像头获取 blob 对象,将此 blob 编码为 base64,然后将数据放入我的img.src。
之后,我需要使用 jquery ajax 将这些数据发送到 PHP。
base64data 非常大,大概有 2 000 000 个字符,所以 ajax 请求非常长(20-50 秒)。
我只是这样发送数据:
var gif = $('.generated-img').attr('src').replace('data:image/gif;base64,', '');
gif = gif.match(/.{1,500000}/g);
$.ajax({
type:"POST",
url: "/webcam/",
data: {image_gif:gif, crop_x:x, crop_y:y, crop_w:w, crop_h:h, gif:true},
success: function () {
parent.$.fancybox.close();
}
});
我需要将数据分成几块,每块 500 000 个字符。
但它太长了.. 我该怎么做才能优化呢?我只需要将这些数据检索到我的 php 脚本中以做一些事情...
【问题讨论】:
-
2MB 图片?那是大..我会以某种方式调整它的大小,为此使用
<canvas>并通过getImageData发送它
标签: javascript php jquery ajax