imagemagick convert 命令在我的系统上似乎无法正常工作
imagemagic's convert command doesnt seem to work correctly on my system
我试图批量降低我系统上存储在该位置的一些图像的质量
~/sandboxArea/MainCam
我运行下面的命令
for i in $(ls ~/sandboxArea/MainCam); do convert $i -quality 30 ~/sandboxArea/converted/$i; done
上面的命令起作用了,所有文件都先缩小了大小,然后放入“~sandboxArea/converted”文件夹
然后我再次尝试降低存储在该位置的图像质量
~/sandboxArea/SecondCam
和 运行 上面的命令在进行如下所需的更改后
for k in $(ls ~/sandboxArea/SecondCam); do convert $k -quality 30 ~/sandboxArea/convertedB/$k; done
它给了我以下错误:
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5682.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5683.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5683.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5684.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5684.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5685.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5685.JPG' @ error/convert.c/ConvertImageCommand/3258.
我尝试了多种方法解决这个问题,也查看了imagemagic.org的官方网站,但没有提到这个问题。
这是一个错误吗?由于此命令曾经有效,但再次失败。
此外,我删除了之前保存在 "converted" 文件夹中的文件,以检查该命令是否可以再次运行。它也在那里失败了。所以同样的命令一次有效,另一次无效。
有人可以帮忙吗。我有大约 8000 多张图片,每张约 7-9MB,所有这些图片都占用了大量 space。只是想在我的 HDD
上保存一些 space
提前致谢。如果有人需要更多说明,请告诉我。
谢谢
这里有一个更简单的方法来重现您的问题:
$ ls ~/tmp
foo.jpg
$ convert foo.jpg bar.jpg
convert-im6.q16: unable to open image `foo.jpg': No such file or directory @ error/blob.c/OpenBlob/2874.
convert-im6.q16: no images defined `bar.jpg' @ error/convert.c/ConvertImageCommand/3258.
问题是,即使您在系统上确实有一个文件 foo.jpg
,它位于不同的目录中,因此如果不限定名称您将无法访问它。在这种情况下,您可以改为 运行:
$ convert ~/tmp/foo.jpg c
(success, no output)
或者,您可以将当前目录更改为 foo.jpg
所在的目录:
$ cd ~/tmp
$ convert foo.jpg ~/Downloads/bar.jpg
(success, no output)
更好的循环将遍历 glob 并正确引用以稳健地处理文件名中的空格和类似内容:
for path in "$HOME/sandboxArea/SecondCam"/*
do
convert "$path" -quality 30 "$HOME/sandboxArea/convertedB/${path##*/}"
done
我对这个命令有不同的问题:
convert -verbose fractal-noise-8192x8192.png -compress none noise-8192x8192.tif
原来是policy.xml文件和内存(或地图?)限制。
我都增加了 8 倍,因为在 Ubuntu 20.04 上它们是 256MiB/512MiB。
编辑:另一个有问题的命令,我进一步增加了限制和磁盘限制。
convert @list.txt test-dataset-512x512x2000.tif
我试图批量降低我系统上存储在该位置的一些图像的质量
~/sandboxArea/MainCam
我运行下面的命令
for i in $(ls ~/sandboxArea/MainCam); do convert $i -quality 30 ~/sandboxArea/converted/$i; done
上面的命令起作用了,所有文件都先缩小了大小,然后放入“~sandboxArea/converted”文件夹
然后我再次尝试降低存储在该位置的图像质量
~/sandboxArea/SecondCam
和 运行 上面的命令在进行如下所需的更改后
for k in $(ls ~/sandboxArea/SecondCam); do convert $k -quality 30 ~/sandboxArea/convertedB/$k; done
它给了我以下错误:
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5682.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5683.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5683.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5684.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5684.JPG' @ error/convert.c/ConvertImageCommand/3258.
convert-im6.q16: unable to open image `IMG_5685.JPG': No such file or directory @ error/blob.c/OpenBlob/2701.
convert-im6.q16: no images defined `/home/mohit/sandboxArea/convertedB/IMG_5685.JPG' @ error/convert.c/ConvertImageCommand/3258.
我尝试了多种方法解决这个问题,也查看了imagemagic.org的官方网站,但没有提到这个问题。
这是一个错误吗?由于此命令曾经有效,但再次失败。
此外,我删除了之前保存在 "converted" 文件夹中的文件,以检查该命令是否可以再次运行。它也在那里失败了。所以同样的命令一次有效,另一次无效。
有人可以帮忙吗。我有大约 8000 多张图片,每张约 7-9MB,所有这些图片都占用了大量 space。只是想在我的 HDD
上保存一些 space提前致谢。如果有人需要更多说明,请告诉我。 谢谢
这里有一个更简单的方法来重现您的问题:
$ ls ~/tmp
foo.jpg
$ convert foo.jpg bar.jpg
convert-im6.q16: unable to open image `foo.jpg': No such file or directory @ error/blob.c/OpenBlob/2874.
convert-im6.q16: no images defined `bar.jpg' @ error/convert.c/ConvertImageCommand/3258.
问题是,即使您在系统上确实有一个文件 foo.jpg
,它位于不同的目录中,因此如果不限定名称您将无法访问它。在这种情况下,您可以改为 运行:
$ convert ~/tmp/foo.jpg c
(success, no output)
或者,您可以将当前目录更改为 foo.jpg
所在的目录:
$ cd ~/tmp
$ convert foo.jpg ~/Downloads/bar.jpg
(success, no output)
更好的循环将遍历 glob 并正确引用以稳健地处理文件名中的空格和类似内容:
for path in "$HOME/sandboxArea/SecondCam"/*
do
convert "$path" -quality 30 "$HOME/sandboxArea/convertedB/${path##*/}"
done
我对这个命令有不同的问题:
convert -verbose fractal-noise-8192x8192.png -compress none noise-8192x8192.tif
原来是policy.xml文件和内存(或地图?)限制。 我都增加了 8 倍,因为在 Ubuntu 20.04 上它们是 256MiB/512MiB。
编辑:另一个有问题的命令,我进一步增加了限制和磁盘限制。
convert @list.txt test-dataset-512x512x2000.tif