【问题标题】:Facebook-like resizing of images using ImageMagick使用 ImageMagick 像 Facebook 一样调整图像大小
【发布时间】:2023-03-06 07:27:02
【问题描述】:

我想按照 Facebook 的方式调整(缩小)一些图像的大小。 ImageMagick,但是,嘿,我愿意接受建议 :)

我相信 Facebook 正在这样做:

假设您的最大宽度 x 高度为 250x200,Facebook 正在优化它的使用。尝试尽可能多地使用 250x200。例如,如果您缩小图像并获得 220x200,那么它们会从图像的顶部和底部剪切,直到尽可能多地使用 250x200 帧。实际上我认为他们从底部而不是顶部(大约 1:2.5)获取更多,我认为这是因为大多数图片的头部都在顶部,而 Facebook 意识到了这一点。

这种大小调整算法有什么名字吗?有没有办法让 ImageMagick 做到这一点?

提前致谢!

编辑 实际上,Facebook 可能根本不会采用这种“智能”调整大小的技术。他们只是在有最小宽度/最小高度的地方调整大小。然后当他们在他们的相册中展示图片时,他们会从顶部/底部或左侧/右侧剪切以尽可能多地使用框架(至少我是这么认为的)。

-托比亚斯

【问题讨论】:

  • 您使用什么语言?对于这类事情,有很多有用的库,具体取决于。
  • 服务器端 JavaScript。但似乎 ImageMagick 是一个不错的选择。
  • Facebook 让你选择你的脸在哪里,然后它只是简单地调整大小。

标签: image-processing imagemagick image-scaling image-resizing


【解决方案1】:

您可以使用 ImageMagick 获取图像的尺寸、缩放然后裁剪它。至于你是否准确描述了 Facebook 使用的算法,我不知道。

我认为以下链接解决了您要解决的问题:

http://www.imagemagick.org/Usage/resize/#space_fill

他们最后给出的例子是……

convert logo: \
      -resize 160x -resize 'x160<'   -resize 50% \
      -gravity center  -crop 80x80+0+0 +repage   space_fill_2.jpg

该命令将图像大小调整为 160 像素宽,将其大小调整为 160 像素高,将两个调整大小的图像中较大的一个缩小一半,然后将其裁剪为 80x80。

您可能对以下内容感兴趣:

http://www.google.com/search?q=image+entroy+cropping

我已经阅读了几篇关于使用图像熵来选择要裁剪的图像部分的文档。

另一个相关链接-

Django, sorl-thumbnail crop picture head

编辑:添加了相关链接,指定了一个示例命令来执行类似任务,并链接到示例源。

【讨论】:

  • 我主要是在寻找一个命令来执行此操作,因此我可以仅使用流即时执行此操作。让 ImageMagick 调整大小,但尽可能多地填写我给它的边界框。
  • 我不知道这样的命令,也不知道他们为什么会包含这样的命令。 ImageMagick 应该做通用图像处理。它的目的不是实现所有可能的图像操作。也许您可以使用 ImageMagic 库或其他一些图像处理库来制作用于执行此特定操作的工具。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多