如何组合这些命令在 ImageMagick 中实现圆形裁剪?

2024-01-12

如何组合这些命令在 ImageMagick 中实现圆形裁剪?

所以这个命令有效:

convert -size 200x200 xc:none -fill samia.jpg -draw "circle 100,100 100,1" circle_thumb.png

上面将拍摄一张照片并对其进行圆形裁剪,但裁剪将基于图片的左上角而不是图片的中心。

此命令也适用于裁剪:

convert *.jpg -resize 200x200^ -gravity Center -crop 200x200+0+0 +repage out.png

上面将根据图像的中心对图像进行方形裁剪。

所以我想做的就是结合这两个命令。

My aim:

该命令将图片作为输入,并基于图片的中心而不是基于图片的左上角对其进行圆形裁剪。

任何具有 IM 技能的人都可以向某人展示如何解决此问题吗?

Vesa

乌班图15.10

Update:

我尝试了下面 Mark Setchell 的解决方案,但收到以下错误消息:

axx@axx-VPCEA3S1E:~/Desktop/circular-crop$ magick samia.png \( +clone -threshold 101% -fill white -draw 'circle %[fx:int(w/2)],%[fx:int(h/2)] %[fx:int(w/2)],%[fx:80+int(h/2)]' \) -channel-fx '| gray=>alpha'   circle.png
magick: no decode delegate for this image format `PNG' @ error/constitute.c/ReadImage/509.
magick: no image to apply a property "%w" @ warning/property.c/GetMagickPropertyLetter/2561.
magick: unknown image property "%w" @ warning/property.c/InterpretImageProperties/3499.
magick: no image to apply a property "%h" @ warning/property.c/GetMagickPropertyLetter/2449.
magick: unknown image property "%h" @ warning/property.c/InterpretImageProperties/3499.
magick: no image to apply a property "%m" @ warning/property.c/GetMagickPropertyLetter/2480.
magick: unknown image property "%m" @ warning/property.c/InterpretImageProperties/3499.
axx@axx-VPCEA3S1E:~/Desktop/circular-crop$ 

这个问题被很多人问到。

给定一个比圆大的图像。

convert -size 300x300 plasma: input.png

我们可以绘制一个形状,将值转换为 Alpha 通道,然后将其合成到输入图像上。

convert input.png \
        -gravity Center \
        \( -size 200x200 \
           xc:Black \
           -fill White \
           -draw 'circle 100 100 100 1' \
           -alpha Copy \
        \) -compose CopyOpacity -composite \
        -trim output.png

现在,如果您打算裁剪many资源,我强烈建议创建一个掩码一次。根据需要重复使用面罩。

convert -size 200x200 xc:Black -fill White -draw 'circle 100 100 100 1' -alpha Copy mask.png

for f in $(ls *.jpg)
do
  convert $f -gravity Center mask.png -compose CopyOpacity -composite -trim ${f}_output.png
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何组合这些命令在 ImageMagick 中实现圆形裁剪? 的相关文章

随机推荐

  • 此应用暂时禁用使用 Google 登录的功能

    当我们尝试向 Google 进行身份验证时 我们会看到以下屏幕 我们尝试验证的应用程序用于内部开发 我们没有将其发布给我们的用户 知道为什么会发生这种情况吗 我们之前遇到过 未经验证的应用程序 屏幕 如下所示 但现在身份验证被禁用 OAut
  • NodeJS 无法读取 ubuntu 中的默认 CA

    在我们的测试环境中 我们使用我们公司签名的 SSL 连接到另一台服务器 每次建立连接时 nodejs 都会抛出异常UNABLE TO VERIFY LEAF SIGNATURE 我通过设置找到了解决方法拒绝未经授权 false 但这不适用于
  • 当没有更多引用时,如何从缓存中删除智能指针?

    我一直在尝试使用智能指针来升级现有的应用程序 并且我正在尝试克服一个难题 在我的应用程序中 我有一个对象缓存 例如 我们称它们为书籍 现在 书籍的缓存是通过 ID 请求的 如果它们在缓存中 则返回它们 如果不在缓存中 则从外部系统请求对象
  • 分类:如果一个类的数据量是另一类的 4 倍,会发生什么?

    我正在尝试调试我的分类器的问题 问题在于 尽管准确率接近 80 但它总是针对给定输入预测相同的类别 我训练 CNN 来检测两个类别之间的差异 A 类有 2575 个 jpeg B 类有 665 个 jpeg 这是否会导致我的 CNN 始终预
  • Tomcat 8、axis2 webservices aar、spring jndi 未绑定在上下文中

    我一直在解决在 axis2 Web 服务运行的上下文中找不到 JNDI 名称的问题 当我使用 spring 时 仅在 Tomcat 8 中出现此问题 一些细节 我将提供相关的元素 1 服务 xml
  • 通过 REST api (v2) 将文章发布到公司 LinkedIN 页面

    使用 LinkedIn REST API v2 我正在寻找一种将文章发布到我公司的 LinkedIn 页面的方法 我已经在这里注册了https business linkedin com marketing solutions market
  • Xcode 11 Beta 5 未显示 Swift 5.1

    我已经从苹果网站下载了 XCode 11 并且正在尝试将我的代码升级到 Swift 5 1 但 XCode 没有提供该选项 另外 我没有看到可用的 iOS 13 模拟器 我以前从未遇到过这个问题 所以我错过了什么 我的操作系统已更新为 Ma
  • 如何在没有任何值得计算的事情发生的情况下减少 XNA 游戏 CPU 使用率?

    新的 XNA 游戏项目应用程序在窗口处于活动状态时会消耗相当多的 CPU 百分比 在我的台式电脑上 它大约是 2 核处理器的 1 个核心的 30 当窗口失去焦点时 游戏将进入空闲模式并消耗约 1 的 CPU 在我最近使用 XNA 制作的图像
  • 为什么非 vi* 的模态编辑器如此之少? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Pretty much every other editor that isn t a vi descendant vim cream vi e
  • 如何在《子弹物理》中控制玩家角色?

    我不知道你应该如何控制子弹中的玩家角色 我读到的方法是使用提供的 btKinematicCharacterController 我还从演示中看到了使用 btDynamicCharacterController 的方法 然而 手册中指出运动控
  • Azure Functions 是否适合长时间运行的任务?

    A TCP 主机服务器位于本地 现在 我需要从 Azure 环境连接主机服务器 连接建立后 主机服务器将不断发送消息 收到的消息将转发到Azure服务总线队列 我得到了以下架构 简化 该架构提出了一个功能应用程序 它将用于与本地服务器连接
  • 如何更改textmate中的文件类型

    当您在 Textmate 中打开新文件时 它会给您一个选择 它会询问您文件类型是什么 并让您为新文件选择语法 那么选择一次语法后如何更改文件语法呢 底部栏上有一个按钮 你按下它 它们就在那里 所有可能的语法模式及其快捷键
  • 用于插入另一个文档的 Google Docs 脚本

    我希望使用自定义菜单插入另一个整个文档 我的想法是 我创建了一组带有自定义表格的谷歌文档 然后用户可以从菜单中运行脚本来插入表格 模板 创建菜单很容易 createMenu 并添加我可以做的菜单项 但是我该如何创建一个脚本来复制另一个 go
  • Dockerfile 中的符号链接命令不会在容器中创建链接

    在我的 Dockerfile 中有这一行 RUN ln s var www html some file var www html another file 运行 docker build 时 会执行所有步骤 包括创建符号链接 但是当我使用
  • Git 分支/变基良好实践

    我有以下场景 3个分支机构 掌握 MyBranch 从 Master 中分支出来 目的是开发系统的新功能 MyBranch Local 从 MyBranch 分支出来作为我的本地分支副本 MyBranch 正在针对其他开发人员 他们正在开发
  • NSCocoaErrorDomain 代码=256

    我已经被这个问题困扰了一段时间 似乎无法解决这个问题 我试图从 URL 中将 URL 的内容作为字符串读取 但我得到了一个奇怪的结果 错误 gt 错误域 NSCocoaErrorDomain 代码 256 操作无法完成 Cocoa 错误 2
  • python:运行外部程序并将输出直接输出到文件并等待完成

    我想从 python 运行外部程序 将输出 大量文本 重定向到日志文件并等待该程序完成 我知道我可以通过 bash 做到这一点 bin bash my external program gt log file 2 gt 1 echo don
  • PHP 中的 bindParam 覆盖错误

    这有点奇怪 我很可能编码完全错误 因此为什么我在两天内在脚本的完全不同部分两次遇到相同的错误 我正在使用的代码如下 public function findAll constraints array Select all records S
  • 自增列:Oracle和MySQL SQL语法的差异

    我是一名大学生 需要使用 Oracle 的 iSQL Plus 提交课程作业 我正在尝试使用以下 SQL 语句创建一个表 CREATE TABLE Category id INT 11 NOT NULL AUTO INCREMENT tit
  • 如何组合这些命令在 ImageMagick 中实现圆形裁剪?

    如何组合这些命令在 ImageMagick 中实现圆形裁剪 所以这个命令有效 convert size 200x200 xc none fill samia jpg draw circle 100 100 100 1 circle thum