如何使用imagemagick复制图像行并将其插入指定位置n次?

如何使用imagemagick复制图像行并将其插入指定位置n次?,imagemagick,image-manipulation,Imagemagick,Image Manipulation,我有一些基于像素的图像,我想用imagemagick按以下方式处理 每个图像采用相同的像素线格式: aaaaaaaaaaaaaaa bbbbbbbbbbbbbbb bbbbbbbbbbbbbbb ccccccccccccccc ccccccccccccccc bbbbbbbbbbbbbbb bbbbbbbbbbbbbbb aaaaaaaaaaaaaaa 所以我想做的是复制第一行BBBBBB,然后在c行之前的最后一行b之后和c行之后的最后一行b之后插入它。这将扩展图像的高度。 此过程应重复n次

我有一些基于像素的图像,我想用imagemagick按以下方式处理

每个图像采用相同的像素线格式:

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线合成拼接的黑线。请参见-裁剪,-拼接,-复合