在自定义对焦点附近裁剪图像并调整其大小

问题描述 投票:0回答:1

故事

我要完成的任务的概述:我需要裁剪和调整照片的大小,一次用于缩略图视图(大约295x195),一次用于“标题图像”样式的视图(大约1400x560)。原始照片的尺寸各不相同,最大为2440x1600。这不是要解决的问题。

但是,图像不应以“北”或“中心”引力进行裁剪,而应从图像应被裁剪。为此,图像具有xy值,以百分比表示中心点; x=50,y=50表示图像的焦点实际上在中间。

我在这里和imagemagick论坛上进行了搜索,但是找不到任何合适的内容,除了“剪切图像的特定部分然后调整大小”。我不确定是否可以通过一个imagemagick命令完成此操作,或者我是否需要自己计算所有内容并基本上创建一个空画布,将其放在图像上,移动图像并调整其大小,然后将其他所有图像剃光实现这一点。

我想实现的目标

我需要一个imagemagick命令来进行>

  • 以一张图像作为输入
  • 考虑到我拥有的焦点(以百分比或像素为单位),将其调整大小并裁剪为给定大小(例如295x195)
  • 以给定尺寸输出图像,对焦点在中间
  • 我将为每个图像和所需的大小使用一个命令。

这是我用演示图片在草图中进行的简短可视化,希望使它更易于理解我正在尝试做的事情:

Problem representation

[左图是我将焦点放在282,282处的基本图像。右边的是我想要的295x195px尺寸的所需裁剪(没有线条,它们只是用于问题演示)。如您所见,裁剪的中心点是原始图像上的焦点。

我尝试过的

我的第一次尝试是使用-crop的偏移值来设置图像的焦点:

convert photo.jpg -resize 1440x560^ -crop "1440x560+25%+25%" result.jpg

但是我很快就了解到,这不是它的工作方式,因为它会导致图像太小(例如,坐标位于图像的左下角),并且通常会被截断对焦点可见的图像部分,在文档中对其进行阅读后才有意义。

然后我看到了-region选项,并尝试使用它的图像尺寸为2400x1600,并从我的图像中切出了各种切口:

convert photo.jpg -region 610x400 -resize 1440x560^ -crop 1440x560+0+0 result.jpg

区域选项的唯一作用是,无论我输入什么值,我都会得到相同的图像剪切,并且始终在图像上放置扭曲的白色水平条纹。

任何关于正确方向的提示(带有或不带有代码示例)都将有所帮助,所以我知道在哪里进行更深入的了解。

环境
  • macOS Catalina开发

  • 包含代码的应用程序将在Debian Buster上运行
  • 本地imagemagick版本是7.0.8-66
  • 服务器imagemagick的版本是6.9.10-23(我可以通过手动构建来更新它,但是,只有在IM7中有效的解决方案才可以)
  • 故事我想要完成的事情的概述:我的照片需要裁剪和调整大小,一次用于缩略图视图(大约295x195),一次用于“标题图像”样式的视图(大约...

    image-processing imagemagick imagemagick-convert
    1个回答
    2
    投票

    ImageMagick中的“扭曲SRT”运算符可以缩放图像,调整画布大小,以及将点从一组坐标移动到另一个坐标中。

    © www.soinside.com 2019 - 2024. All rights reserved.