如何使用imagemagick复制图像行并将其插入指定位置n次?
我有一些基于像素的图像,我想用imagemagick按以下方式处理 每个图像采用相同的像素线格式:如何使用imagemagick复制图像行并将其插入指定位置n次?,imagemagick,image-manipulation,Imagemagick,Image Manipulation,我有一些基于像素的图像,我想用imagemagick按以下方式处理 每个图像采用相同的像素线格式: aaaaaaaaaaaaaaa bbbbbbbbbbbbbbb bbbbbbbbbbbbbbb ccccccccccccccc ccccccccccccccc bbbbbbbbbbbbbbb bbbbbbbbbbbbbbb aaaaaaaaaaaaaaa 所以我想做的是复制第一行BBBBBB,然后在c行之前的最后一行b之后和c行之后的最后一行b之后插入它。这将扩展图像的高度。 此过程应重复n次
aaaaaaaaaaaaaaa
bbbbbbbbbbbbbbb
bbbbbbbbbbbbbbb
ccccccccccccccc
ccccccccccccccc
bbbbbbbbbbbbbbb
bbbbbbbbbbbbbbb
aaaaaaaaaaaaaaa
所以我想做的是复制第一行BBBBBB,然后在c行之前的最后一行b之后和c行之后的最后一行b之后插入它。这将扩展图像的高度。
此过程应重复n次
这意味着a和c线部分将保持不变,而b部分将放大图像的高度
在阅读之后,我不知道如何做到这一点
因此,任何形式的帮助都将不胜感激。多亏了@fmw42,我可以编写以下解决方案,获得图像大小,然后计算行数,将图像增加到48/49像素的高度。 首先在图像底部添加线条,然后在图像顶部添加相同数量的线条。同时保留第一行/最后一行
@echo off
setlocal ENABLEDELAYEDEXPANSION
set image=Welcome1.gif
rem use %1 for comanndline argument
set image2=%TEMP%\temp1.gif
set image3=%TEMP%\temp2.gif
magick identify -format "%%w" %image% > %TEMP%\imwidth.txt
set /P width=<%TEMP%\imwidth.txt
del %TEMP%\imwidth.txt
magick identify -format "%%h" %image% > %TEMP%\imheight.txt
set /P height=<%TEMP%\imheight.txt
del %TEMP%\imheight.txt
set /A addlines=(49 - %height%) / 2
set /A lastline=%height% - 2
magick %image% -crop %width%x1+0+2 %TEMP%\copyLine.gif
rem Add lines at end of image
set image1=%image%
FOR /L %%i IN (1,1,%addlines%) DO (
magick !image1! -background black -splice 0x1+0+%lastline% %image2%
magick composite %TEMP%\copyLine.gif %image2% -geometry 99x1+0+%lastline% %image3%
del %TEMP%\%image%
ren %image3% %image%
set image1=%TEMP%\%image%
)
rem Add lines at top of image
set image1=%TEMP%\%image%
FOR /L %%i IN (1,1,%addlines%) DO (
magick !image1! -background black -splice 0x1+0+2 %image2%
magick composite %TEMP%\copyLine.gif %image2% -geometry 99x1+0+2 %image3%
del %TEMP%\%image%
ren %image3% %image%
set image1=%TEMP%\%image%
)
copy %TEMP%\%image% %image:~0,-4%touch.gif
del %TEMP%\copyLine.gif %TEMP%\temp1.gif %TEMP%\temp2.gif %TEMP%\%image%
endlocal
exit /b 0
@echo关闭
setlocal ENABLEDELAYEDEXPANSION
设置image=Welcome1.gif
rem将%1用于comanndline参数
设置图像2=%TEMP%\temp1.gif
设置图像3=%TEMP%\temp2.gif
magick标识-格式为“%%w”%image%>%TEMP%\imwidth.txt
设置/P宽度=%TEMP%\imheight.txt
set/P height=请显示您的输入图像和相应的预期输出图像。我不知道“bbb行”可能是什么。我能建议的最好方法是编写一个脚本循环。在循环中,它将裁剪要移动的bbbb线。然后在bbbb线之后拼接一条黑线,然后将裁剪的bbbb线合成拼接的黑线。请参见-裁剪,-拼接,-复合