gpt4 book ai didi

amazon-web-services - IMDb 如何实时调整图像大小和裁剪?

转载 作者:行者123 更新时间:2023-12-04 15:12:35 27 4
gpt4 key购买 nike

我一直在研究 CDN 和图像缩略图生成,我对 IMDb 的图像处理方式印象深刻。以下是缩略图版本的示例:

http://ia.media-imdb.com/images/M/MV5BMTc0MzU5ODQ5OF5BMl5BanBnXkFtZTYwODIwODk1._V1._SY98_CR1,0,67,98_.jpg

这是一个调整大小和裁剪的版本:

http://ia.media-imdb.com/images/M/MV5BMTc0MzU5ODQ5OF5BMl5BanBnXkFtZTYwODIwODk1._V1._SY400_CR10,40,213,314_.jpg

从 '.V1._...' 开始的所有内容都用于确定如何操作图像,这似乎很简单。这一切都以令人印象深刻的速度完成,我决定找到一个模仿此功能的现有解决方案。

我能够找到很多调整图像大小的解决方案,并且我确实找到了 Google App Engine 的关于在 Java 中转换图像的页面。但是,我不认为亚马逊的 IMDb 使用 Google 来提供它的图片,而且由于我所有的图片都在亚马逊的 S3 上,我认为我不能使用那个解决方案。

经过四个小时的在线搜索,我决定在这里问问聪明的人群。

进一步的背景:我正在亚马逊的 Elastic Beanstalk 上构建一个 Web 应用程序,并且我正在考虑使用一个单独的服务器(可能是另一个 Beanstalk)来处理图像......类似于 IMDb 正在做的事情。

提前感谢您的洞察力。

最佳答案

我无法谈论 IMDB 的具体实现,但我过去曾在 Amazon EC2 和 S3 上实现过类似的解决方案。这是我的实现的概述:

  1. 所有主(全尺寸)图像都存储在 S3 上,但不可公开访问。

  2. 所有图片 src url 都指向一个 EC2 Web 服务器。

  3. 图像的更小(缩略图)版本也存储在 S3 上,并具有标识其大小和纵横比的命名约定:

    • “myimage1_s200.jpg”是“myimage1.jpg”的正方形版本,已调整为 200x200 正方形。
    • “myimage1_h100.jpg”已调整为最大高度 100(具有符合原始纵横比的可变宽度)。
  4. 当 EC2 服务器收到对特定图像大小的请求时:它会检查该大小是否已经存在,如果存在,它将现有图像返回给请求者。

  5. 当 EC2 服务器收到对不存在的图像大小的请求时:它检索同一图像的下一个更大尺寸版本的副本并调整其大小并将新图像返回给请求者,并且将副本保存到 S3 以供将来使用。

性能说明:

  1. 如果您知道它们存在,将图像 src 直接指向 S3 上先前调整大小的图像会快得多!

  2. 在加载时调整下一个较大版本的图像与始终返回原始图像相比要快得多!

关于amazon-web-services - IMDb 如何实时调整图像大小和裁剪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6457956/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com