在作为原始图像二进制数据(png 或 jpeg)上传到服务器之前裁剪或调整图像大小

Crop or resize images before upload to the server as raw image binary data (png or jpeg)

我正在尝试在浏览器中裁剪图像并将它们作为 原始图像二进制数据 上传到服务器(格式应为"image/jpeg""image/png").我尝试了很多客户端裁剪和上传方法,他们都使用 html 5 函数 canvas.toDataURL() 来得到最终裁剪数据 "data:image/png;base64"格式,上传到web服务器然后在服务器端。

问题是我必须将裁剪后的数据上传到像 AWS S3 这样的静态文件服务器,它不能执行转换代码,除了接受文件上传。因此,我需要的是将裁剪后的图像上传为普通图像格式,如"image/png"。如果可以做到这一点,我可以使用浏览器裁剪图像并将其直接上传到文件服务器(S3),我不需要中间服务器来转换图像数据并将其传输到文件服务器(S3)。

看看 Filepicker.io,它提供了一个基于 JavaScript 的文件选择器,其中包括 cropping/resizing 功能并支持上传到 S3 和其他云存储服务,而无需服务器-边码。请注意,某些功能需要付费计划。

您可以尝试 Crop Upload,一个基于 HTML5 的 javascript 插件,它裁剪 canvas 元素中的图像,将 canvas 转换为blob 并通过 AJAX 将其作为 png 或 jpeg 上传到服务器。它根本不需要任何服务器端代码,但它只能在支持 HTML 的浏览器中 运行 5.

编辑:插件的 link 已过期。