如何复制、粘贴、水平和垂直翻转多张图片?
How to copy, paste and flip horizontally and vertically many images?
基本上,我有 500 多张图片需要以完全相同的方式进行修改。我有这样的图片 .
而且我需要复制图像的左侧,更准确地说是尺寸为 645x999 像素的矩形,粘贴它,对角翻转并移动到右侧。我可以使用任何图像编辑器手动执行此操作,但我想知道我是否可以编写一个程序(最好使用 C++),或者输入一个可以为我执行此操作的命令。我想得到这个,任何建议都会有很大帮助。
谢谢。
以下 netpbm 命令显示了如何对单个文件执行此操作
cat cwxAr.png | pngtopnm | pamcut -width 670 -height 999 | pnmtopng > il.png
cat il.png | pngtopnm | pnmflip -tb | pnmflip -lr | pnmtopng > ir.png
cat il.png | pngtopnm > il.pnm
cat ir.png | pngtopnm > ir.pnm
pnmcat -lr il.pnm ir.pnm | pnmtopng > i.png
注意 - 要获得示例中给出的输出图像,宽度为 670 像素,而不是 645。
这应该会生成中间图像
il.png
ir.png
还有最后一张图片i.png
要对一系列文件执行此操作,可以使用以下脚本,其中变量 flist 设置为要处理的文件列表
#!/bin/bash -f
flist=( cwxAr-0 cwxAr-1 cwxAr-2 )
outpref=( cwxAr-out )
nout=0
for f in ${flist[*]} ; do
fout=`printf "%s-%4.4d.png" ${outpref} ${nout}`
echo "Reading "${f}", writing ",${fout}
cat ${f}.png | pngtopnm | pamcut -width 670 -height 999 | pnmtopng > il.png
cat il.png | pngtopnm | pnmflip -tb | pnmflip -lr | pnmtopng > ir.png
cat ir.png | pngtopnm > ir.pnm
cat il.png | pngtopnm > il.pnm
pnmcat -lr il.pnm ir.pnm | pnmtopng > ${fout}
nout=$(( nout +1 ))
done
基本上,我有 500 多张图片需要以完全相同的方式进行修改。我有这样的图片
而且我需要复制图像的左侧,更准确地说是尺寸为 645x999 像素的矩形,粘贴它,对角翻转并移动到右侧。我可以使用任何图像编辑器手动执行此操作,但我想知道我是否可以编写一个程序(最好使用 C++),或者输入一个可以为我执行此操作的命令。我想得到这个
谢谢。
以下 netpbm 命令显示了如何对单个文件执行此操作
cat cwxAr.png | pngtopnm | pamcut -width 670 -height 999 | pnmtopng > il.png
cat il.png | pngtopnm | pnmflip -tb | pnmflip -lr | pnmtopng > ir.png
cat il.png | pngtopnm > il.pnm
cat ir.png | pngtopnm > ir.pnm
pnmcat -lr il.pnm ir.pnm | pnmtopng > i.png
注意 - 要获得示例中给出的输出图像,宽度为 670 像素,而不是 645。
这应该会生成中间图像
il.png
ir.png
还有最后一张图片i.png
要对一系列文件执行此操作,可以使用以下脚本,其中变量 flist 设置为要处理的文件列表
#!/bin/bash -f
flist=( cwxAr-0 cwxAr-1 cwxAr-2 )
outpref=( cwxAr-out )
nout=0
for f in ${flist[*]} ; do
fout=`printf "%s-%4.4d.png" ${outpref} ${nout}`
echo "Reading "${f}", writing ",${fout}
cat ${f}.png | pngtopnm | pamcut -width 670 -height 999 | pnmtopng > il.png
cat il.png | pngtopnm | pnmflip -tb | pnmflip -lr | pnmtopng > ir.png
cat ir.png | pngtopnm > ir.pnm
cat il.png | pngtopnm > il.pnm
pnmcat -lr il.pnm ir.pnm | pnmtopng > ${fout}
nout=$(( nout +1 ))
done