当前位置: 首页 > 知识库问答 >
问题:

ImageMagick循环转换

吴和硕
2023-03-14

我想在文件目录上迭代此代码

convert Film_Crew.jpg -resize 1920x1080 -size 1920x1080 xc:black +swap -gravity center -composite Film_Crew_resize.jpg

我目录中的图像:

Film_Crew.jpg

Film\u Crew副本。jpg公司

Film_Crew复制2.jpg

Film\u Crew副本3。jpg公司

Film\u Crew副本4。jpg公司

Film\u Crew副本5。jpg公司

Film\u Crew副本6。jpg公司

我尝试使用此代码,因为上次尝试时它对我有效,但现在不起作用。

for i in *.*; do convert $i -auto-orient -resize 1920x1080 -size 1920x1080 xc:black +swap -gravity center -composite "new/${i%.*}.jpg";done

我在终端的Mac电脑上工作。我得到的错误是:

转换:无法打开图像Film_Crew':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有此图像格式的解码委托'@error/成分. c/ReadImage/504。转换:无法打开图像复制':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有此图像格式的解码委托'@error/成分. c/ReadImage/504。转换:无法打开图像2.jpg':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有这样的图像黑色'@error/mogrify. c/MogrifyImageList/8770。转换:未定义图像新/Film_Crew复制2.jpg'@error/转换. c/ConvertImageCommand/3258。转换:无法打开图像Film_Crew':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有此图像格式的解码委托'@error/成分. c/ReadImage/504。转换:无法打开图像复制':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有此图像格式的解码委托'@error/成分. c/ReadImage/504。转换:无法打开图像3.jpg':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有这样的图像黑色'@error/mogrify. c/MogrifyImageList/8770。转换:没有定义的图像新/Film_Crew复制3.jpg'@error/转换. c/ConvertImageCommand/3258。转换:无法打开图像Film_Crew':没有这样的文件或目录@错误/blob. c/OpenBlob/2701。转换:没有此图像格式的解码委托'@error/成分. c/ReadImage/504。转换:无法打开图像复制':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有此图像格式的解码委托'@error/成分. c/ReadImage/504。转换:无法打开图像4.jpg':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有这样的图像黑色'@error/mogrify. c/MogrifyImageList/8770。转换:没有定义的图像新/Film_Crew复制4.jpg'@error/转换. c/ConvertImageCommand/3258。转换:无法打开图像Film_Crew':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有解码转换:无法打开图像复制:没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:无法打开图像转换:没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:无法打开图像5.jpg:没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有这样的图像黑色'@error/mogrify. c/MogrifyImageList/8770。转换:没有定义的图像新/Film_Crew复制5.jpg'@error/转换. c/ConvertImageCommand/3258。转换:无法打开图像Film_Crew:没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有这种图像格式的解码委托转换:无法打开图像复制':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:无法打开图像6.jpg':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有定义的图像新/Film_Crew复制6.jpg'@error/ConvertImageCommand/3258。转换:无法打开图像Film_Crew':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有这样的图像黑色'@error/mogrify. c/MogrifyImageList/8770。无法打开图像copy.jpg':没有这样的文件或目录@error/blob. c/OpenBlob/2701。转换:没有这样的图像黑色'@error/mogrify. c/MogrifyImageList/8770。转换:没有定义的图像new/Film_Crewcopy.jpg'@error/转换. c/ConvertImageCommand/3258。转换:无法打开图像'new/Film_Crew.jpg':没有这样的文件或目录@error/blob. c/OpenBlob/2701。

共有2个答案

晋西岭
2023-03-14

假设您的所有输入图像都是JPG,请使用ImageMagick尝试此操作。我将内部字段指定符设置为新行,以便文件名中的空格被视为名称的一部分。

cd
cd path2/your_image_directory
OLDIFS=$IFS
IFS=$'\n'
list=`ls *.jpg`
for img in $list; do 
convert \( "$img" -auto-orient -resize 1920x1080 \) \( -size 1920x1080 xc:black \) +swap -gravity center -composite "./new/${img%.*}.jpg"
done
IFS=$OLDIFS
吴炎彬
2023-03-14

使用mogrify,生活会更轻松-无需循环,无需引用:

mkdir new
mogrify -path new -resize 1920x1080 -background black -gravity center -extent 1920x1080 *jpg
 类似资料:
  • 问题内容: 我正在尝试将此for循环重写为for每个循环。 这就是我尝试过的 谁能指出我正确的方向?谢谢。 问题答案: 我认为您想得太多… :)

  • 我尝试将一个循环转换为一个循环在flutter中等待循环。我想要循环的元素是Firebase实时数据库中的快照。 我的函数如下所示: 我尝试了不同的方法,但是我没有让函数工作。 第一次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 第二次尝试: 错误: 未处理的异常:键入'_InternalLinkedHashMap 在所有的尝试中,我都得到了相同的错误。但是上述

  • 给出了一个连通的加权图,它的权值是非负的。我想把它转换成一个连通的无环图,这样删除的边的权重之和最小化。输出将是移除的边缘。 我的想法:由于连通无环图是一棵树,所以我可以简单地取最大边,去掉所有其他边。但是,这可能并不总是正确的。它可能导致一个断开的图。

  • 问题内容: 我有一些代码可以从集合中提取所有文档并将其放到网页上。简化版本如下所示: 我有一个driveInfo集合,其中包含很长的文档列表。每个文档包含嵌套的对象。我想做的是,每当有人在其浏览器中访问/ drive时,将整个集合打印为json对象,以便以后可以用jquery抓取所有内容(api的开头) 但是,我收到一条错误消息:“ TypeError:将圆形结构转换为JSON”。页面上的错误指向

  • 将循环转换为时遇到问题。 方法返回 我尝试过,但需要等待将转换为并且我无法添加它。 我正在尝试下载大约15个报告异步,以等待所有的已经下载,然后将它们合并成一个PDF。 注意:我使用的是框架4.8.3

  • 我正在尝试使用Latex创建PDF文件。但是,Latex不处理TIFF或任何其他能够同时透明和CMYK的图像格式。我认为我可以使用的唯一解决方案是将PNG图像转换为PDF并将其嵌入到文件中。 我对imagemagick有点熟悉,但是,我不知道如何将PNG(可能在RGB/SRGB颜色空间中)转换为CMYK颜色空间中的PDF。 我如何进行这种转换,使颜色正确,透明度保持不变?