【问题标题】:Can I transform images without uploading them to cloudinary?我可以在不将图像上传到 cloudinary 的情况下转换图像吗?
【发布时间】:2020-12-22 06:59:54
【问题描述】:

目前我在服务器上的图像上使用不同的转换,然后再将其保存到 cloudinary

例如。宽度、高度、裁剪、重力

using (var stream = file.OpenReadStream())
{
   var uploadParams = new ImageUploadParams()
    {
          File = new FileDescription(file.Name, stream),
          Transformation = new Transformation()
             .Width(500).Height(500).Crop("fill").Gravity("face")
    };
                
    uploadResult = _cloudinary.Upload(uploadParams);
}

但我想知道是否可以对图像进行 Cloudinary 转换以查看图像的外观而不先上传它?具体来说,.Crop("fill").Gravity("face")

这样我可以将它显示给用户,他们可以在将其保存到我的 Cloudinary 帐户和服务器之前接受或拒绝它。

  • 具体来说,我正在寻找 Cloudinary 解决方案,而不是第 3 方 JS 库,除非它使用 Gravity("face") 并且体积小

感谢您的帮助

【问题讨论】:

标签: javascript c# cloudinary


【解决方案1】:

对于裁剪/调整大小的部分,你可以在没有库的情况下完成,你只需要一个画布,这个链接可以帮助你How to resize then crop an image with canvas

对于Gravity("face") 部分,这是另一个工程级别,你需要一个 AI 来检测和定位所有带有图片的人脸,你必须使用一个库,face-api.js 是 javascript 的最佳解决方案,它唯一的缺点是它的大小“我们正在谈论兆字节”这里是 demo 页面

如果您想要更轻、更快、但“与 face-api.js 相比”更不准确的东西,可以使用 pico.js,这里是 demo 页面

无论如何,祝你好运。

【讨论】:

  • 感谢您的意见。我想我会朝着不同的方向前进。这是用于用户配置文件(社交网站)的表单向导。表单的最后一步是用户图像。我正在使用 ng2-file-upload 从用户那里获取图像,并且我想在将 img 上传并保存到 Cloudinary 之前在屏幕上将其显示为拇指。因此,如果用户不喜欢它,他/她可以上传一个新的来使用。但我需要通过转换运行它并首先将其上传到 cloudinary 以获取 img url 以传递回表单以显示图像。
  • 所以我想我会做的是,一旦他们在入职表单向导中上传了它,我就不会给他们重新上传的能力。如果他们想更改图片,可以在他们的个人资料编辑页面中进行。
  • 我不知道 cloudnary 是如何工作的,但是看看这个“pqina.nl/doka”......老实说,不要认为你需要一个人脸检测系统来裁剪图像,只是让用户裁剪他们自己的图片,让他们更好地控制最终结果,您只需上传一次最终结果。
  • 是的,这类似于cropperjs,但这个不是免费的。我没有办法为此付出代价......
  • 对不起,我没有看到价格标签,我被细节所吸引......在这种情况下,继续你的解决方案,似乎是一个很好的妥协。祝你好运:)
猜你喜欢
  • 2021-04-04
  • 2021-03-20
  • 1970-01-01
  • 2015-07-20
  • 2015-02-21
  • 2017-07-12
  • 2014-11-25
  • 2021-03-21
  • 1970-01-01
相关资源
最近更新 更多