Pro*_*ofK 51 javascript image-processing
我需要为用户提供一种手段,以jpeg格式将照片上传到他们的网站.但是,照片的原始尺寸非常大,我想在上传前调整大小选项对用户来说非常轻松.似乎我唯一的选择是客户端应用程序,它在通过Web服务上载照片之前调整照片大小,或者在上传操作上调整照片大小的客户端JavaScript挂钩.第二个选项是非常试验性的,因为我没有JavaScript图像大小调整库,并且很难让JavaScript运行我当前的调整大小工具ImageMagick.
我确信这不是一个不常见的场景,并且对这样做的网站的一些建议或指针将不胜感激.
Nic*_*DIA 61
在2011年,我们可以通过File API和canvas来了解它.这仅适用于firefox和chrome.这是一个例子:
var file = YOUR_FILE,
fileType = file.type,
reader = new FileReader();
reader.onloadend = function() {
var image = new Image();
image.src = reader.result;
image.onload = function() {
var maxWidth = 960,
maxHeight = 960,
imageWidth = image.width,
imageHeight = image.height;
if (imageWidth > imageHeight) {
if (imageWidth > maxWidth) {
imageHeight *= maxWidth / imageWidth;
imageWidth = maxWidth;
}
}
else {
if (imageHeight > maxHeight) {
imageWidth *= maxHeight / imageHeight;
imageHeight = maxHeight;
}
}
var canvas = document.createElement('canvas');
canvas.width = imageWidth;
canvas.height = imageHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(this, 0, 0, imageWidth, imageHeight);
// The resized file ready for upload
var finalFile = canvas.toDataURL(fileType);
}
}
reader.readAsDataURL(file);
Run Code Online (Sandbox Code Playgroud)
你有几个选择:
我已经做了很多研究,寻找与你所描述的类似的解决方案,并且有许多解决方案在质量和灵活性方面有很大差异.
我的建议是找到一个解决方案,它可以满足您的需求,并根据您的需求进行定制.
| 归档时间: |
|
| 查看次数: |
48493 次 |
| 最近记录: |