当前位置: 首页 > 面试题库 >

HTML5预先调整大小的图片,然后再上传

龙德海
2023-03-14
问题内容

这是面条擦。

请记住,我们有HTML5本地存储和xhr v2,而没有。 我想知道是否有人可以找到一个可行的例子,甚至只是对这个问题给我一个是或否:

是否可以使用新的本地存储(或其他方式)对图像进行预调整大小,以便对重新调整图像大小不了解的用户可以将其10mb图像拖到我的网站中,然后使用新的本地存储来调整其大小并然后以较小的尺寸上传

我非常了解您可以使用Flash,Java applet,活动X来实现它。问题是您是否可以使用Javascript + HTML5。

期待对此做出回应。

暂时


问题答案:

是的,使用FileAPI,然后您可以使用canvas元素处理图像。

供参考,汇编源代码:

// from an input element
var filesToUpload = input.files;
var file = filesToUpload[0];

var img = document.createElement("img");
var reader = new FileReader();  
reader.onload = function(e) {img.src = e.target.result}
reader.readAsDataURL(file);

var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);

var MAX_WIDTH = 800;
var MAX_HEIGHT = 600;
var width = img.width;
var height = img.height;

if (width > height) {
  if (width > MAX_WIDTH) {
    height *= MAX_WIDTH / width;
    width = MAX_WIDTH;
  }
} else {
  if (height > MAX_HEIGHT) {
    width *= MAX_HEIGHT / height;
    height = MAX_HEIGHT;
  }
}
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, width, height);

var dataurl = canvas.toDataURL("image/png");

//Post dataurl to the server with AJAX


 类似资料:
  • 问题内容: 我发现了一些不同的帖子,甚至关于stackoverflow的问题都回答了这个问题。我基本上正在实现与此职位相同的事情。 所以这是我的问题。上传照片时,我还需要提交表单的其余部分。这是我的html: 以前,我不需要调整图像大小,因此我的JavaScript看起来像这样: 所有这些都很好用…现在我需要调整图像的大小…如何替换表单中的图像,以便发布调整大小的图像而不是上传的图像? 我曾考虑过

  • 问题内容: 我想在上传前调整图片(Pillow)的大小,我在下面编写代码,但是不起作用! 并得到错误: `AttributeError at /myapp/list/ _committed Request Method: POST Request URL: http://127.0.0.1:8000/myapp/list/ Django Version: 1.8 Exception Type: A

  • 问题内容: 我已经为这个问题苦苦挣扎了几个小时。我想从输入标签调整图像大小,然后将其上传到服务器。这是我的尝试。 我的输入元素: 我的功能: } 我正在为我的项目使用ReactJS。我被上面的评论所困扰,无法获得图片的宽度。在上传之前,我曾在HTML5预先调整大小的图片上尝试过此解决方案,但这似乎对我不起作用。谁能指出我的代码有什么问题以及如何解决?谢谢一群! 问题答案: 问题是,你没有访问其前等

  • 一直以来,我都在开发一款分辨率为800x480(流行手机分辨率)的应用程序。 我的画布HTML: 现在,为了使其全屏显示其他分辨率,我在调整大小事件后执行以下操作: 这是可行的,但问题是我不能以这种方式保持纵横比。800x480是4:3,但是如果我在5:3的手机上运行这个应用程序,有些东西(尤其是圆圈)看起来会被拉伸。 有没有什么方法可以让它在所有分辨率下看起来都很好,而不必为每个纵横比创建一组独

  • 问题内容: 我正在尝试将调整大小的图像上传到S3: 但我得到一个错误: 问题答案: 您需要先将输出图像转换为一组字节,然后才能上载到s3。您可以将图像写入文件然后上传文件,也可以使用cStringIO对象来避免写入磁盘,就像我在这里所做的那样:

  • 问题内容: 我正在尝试使用javascript和canvas元素在客户端创建缩略图,但是当我缩小图像时,它看起来很糟糕。看起来好像是在Photoshop中缩小了尺寸,将重采样设置为“最近的邻居”而不是Bicubic。我知道有可能使它看起来正确,因为该站点也可以使用画布来完成它。我已经尝试使用与[[Source]]链接中所示相同的代码,但是看起来仍然很糟糕。是否缺少我需要的设置,需要设置的设置? 编