首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >上传前调整图像大小

上传前调整图像大小
EN

Stack Overflow用户
提问于 2009-06-07 13:49:33
回答 7查看 50.7K关注 0票数 51

我需要提供一种手段,为用户上传照片到他们的网站在jpeg格式。然而,照片的原始尺寸非常大,我想让用户在上传之前调整大小的选项非常容易。似乎我唯一的选择是一个客户端应用程序,它在通过web服务上传照片之前调整它们的大小,或者是上传操作上的一个客户端JavaScript钩子来调整图像的大小。第二种选择是非常试探性的,因为我没有JavaScript图像大小调整库,而且很难让JavaScript运行我当前的调整大小工具ImageMagick。

我相信这并不是什么稀奇古怪的场景,我们将非常感谢一些相关网站的建议或指点。

EN

回答 7

Stack Overflow用户

发布于 2011-12-06 17:39:11

在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);
票数 61
EN

Stack Overflow用户

发布于 2010-03-03 16:02:07

有一个支持多种技术的Plupload tool,它声明它可以在上传之前调整大小,但我还没有尝试过。我也在我的question about binary image handling javascript libs中找到了一个合适的答案。

票数 12
EN

Stack Overflow用户

发布于 2009-06-07 13:53:53

我认为你需要Java或ActiveX来实现。例如Thin Image Upload

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/961913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档