Mon*_*tag 25 macos bash image imagemagick imagemagick-convert
问题: ImageMagick转换无法裁剪图像.看起来它无法识别图像类型?
我试过的:
我在网上搜索过,我看过几个类似的问题,但不是我的.我尝试过他们的解决方案,包括
我正在使用Mac OSX El Capitan,终端中的其他一切工作正常.ImageMagick已经安装好了.
当我跑:
$ convert /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487.png 805X972+34+94 /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487-cropped.png
Run Code Online (Sandbox Code Playgroud)
我明白了:
转换:无法打开图像`805X972 + 34 + 94':没有这样的文件或目录@ error/blob.c/OpenBlob/2702.
convert:没有用于此图像格式的解码委托`'@ error/construct.c/ReadImage/504.
没有解码委托给这个图像格式''@ error/construct.c/ReadImage/504
在这个问题的其他帖子中,人们得到了
为此图像格式"PNG"转换无解码委托
或者类似(除了图像类型或文件名和图像类型)
但是,我对图像文件类型没有任何说明......
我没有尝试卸载ImageMagick,然后从源手动安装它,因为我对此没有信心......(此解决方案显示:https://stackoverflow.com/a/34633084/5398660)
有谁知道可能会发生什么?
另外,任何人都可以帮我解释@ error/construct.c/ReadImage/504部分吗?我在看的代码constitute.c ,但我不知道,如果从它来解决我的问题(我只知道一点的C)我可以得到有用的信息
谢谢!
小智 14
brew remove imagemagick //to delete current version
brew install imagemagick --build-from-source
Run Code Online (Sandbox Code Playgroud)
在mac上为我修好了
小智 10
我在 Ubuntu 20.04 和 ImageMagick 上遇到了同样的错误。必须根据以下说明重新安装 ImageMagick 和所有附加组件:
#These are the steps required in order to Install ImageMagick with JPG, PNG and TIFF delegates.
sudo apt-get update
#Install Build-Essential in order to configure and make the final Install
sudo apt-get install build-essential
#libjpg62-dev required in order to work with basic JPG files
sudo apt-get install -y libjpeg62-dev
#libtiff-dev is required in order to work with TIFF file format
sudo apt-get install -y libtiff-dev
#Download ImageMagick
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
#Untar Imagemagick
tar xvzf ImageMagick.tar.gz
#Access the working directory
cd ImageMagick/[version_number]
#Configure and make sure to disable the "shared" option
./configure --disable-shared
#Make
sudo make
#Install
sudo make install
#Final Check
sudo make check
Run Code Online (Sandbox Code Playgroud)
投入我的两分钱,因为过去几天我也一直在努力解决这个问题。我在本地机器上运行 ImageMagick 命令没有问题,但是当我从 Azure Cloud 上运行的 Tomcat 服务器运行命令时收到了 OP 提到的错误消息。
我可以通过运行以下命令来确定原因:
convert -list format
Run Code Online (Sandbox Code Playgroud)
在我的本地机器上,它会返回很长的所有支持格式列表,而在 Kudu(Azure CLI 工具)上,它会返回一个空结果。这表明 ImageMagick 没有找到处理所需的 DLL 文件的路径。
就我而言,问题只是由于 Azure 上缺少配置造成的:
注意:对于在 Azure 上也遇到此问题的人,您可以查看这个SO 答案,其中解释了如何使用 XDT 转换添加环境变量。
好吧,通过尝试,我找到了解决方案,并将其发布在这里,供可能遇到此问题的其他人使用:
显然,这不是/不再是/不适合我使用 ImageMagick 转换来裁剪图像的方法。尽管这里显示了这种用法,但它对我使用 El Capitan 不起作用(也许是操作系统?)。
而不是使用
转换 img.png 805X972+34+94 img-crop.png
有效的正确命令是:
转换 image.png -crop 805X972+34+94 image-crop.png
也就是说,命令是:
转换 image.ext -crop高度X宽度+ positionX +positionY* imagecropped.ext
可以在这里找到更多内容。从 ImageMagick 页面上的描述来看,我对他们转换 Rose: -crop 的示例感到困惑,但你可以按照我上面提到的方式使用它,它工作得很好。
| 归档时间: |
|
| 查看次数: |
31720 次 |
| 最近记录: |