我正在尝试执行以下一组转换而不知道目标图像的绝对宽度或高度:
1. Crop image A by 10px on every size :: A1
2. Create duplicate of A1 translating image by 1270px on the y-axis :: A2
3. Create montage of A1 && A2 :: A3
4. Translate A3 by 385px on the y-axis :: A4
5. Crop A4 at 100% width, and 1270px tall (box from 0,0 to WIDTH,1270) :: A5
我的问题是我如何用相对坐标做第1步和第5步?以下是我提出的步骤:
1. convert A.jpg -shave 10x10 A1.jpg
2. convert A1.jpg -page +0-1270 -background none -flatten A2.jpg
3. montage A1.jpg A2.jpg -geometry +0+0 A3.jpg
4. convert A3.jpg -page +0-385 -background none -flatten A4.jpg
5. convert A4.jpg ????? A5.jpg
答案 0 :(得分:2)
更新了答案
好的,我想我明白你现在想要的更好一些。以下是我将如何做到这一点:
convert start.jpg -crop +0+383 +repage \
\( -clone 0 -crop x1270+0+0 \) \
\( -clone 0 -crop x1270+0+1270 \) \
-delete 0 +append result.jpg
第一行说... "拍摄起始图像并裁掉前383像素并重置所有尺寸以匹配剩下的尺寸。从现在开始称之为第一张图片。"
第二行说... "在一侧(由于括号),克隆第一张图像并从顶部裁剪出全宽和1270像素的高度。保持这一点直到稍后 - 即将其保留在图像列表中。" 。
第三行说... "到一边(因为括号),克隆第一张图片,裁剪出一个全宽和1270像素的高度,但是开始1270像素从一开始。保持这一点直到稍后 - 即将其保留在图像列表中。"
最后一行说... "删除初始图像,然后取出图像列表中的两个切片并将它们并排添加,另存为result.jpg
&# 34。
原始答案
我认为我们需要在这一方面共同努力,但可以做到。让我们从一个具有15px黑色边框的400x250渐变的具体图像开始:
convert -size 250x400 gradient:red-cyan -rotate 90 -bordercolor black -border 15 A.png
所以,第1步。
convert A.png -shave 10x10 A1.png
第2步和第3步。我不明白这些!您似乎正在尝试为不支持透明度的JPEG添加透明空间。而且,我不能告诉你在哪里等待。请用简单的英语尝试用这两个步骤表达您想要的内容,例如"添加透明区域N像素宽/高于上/下,A2 /#34的左/右; ,或者也许"添加一个透明区域,使新尺寸为X,Y,原始A2图像位于新画布的右下角。"
如果我在步骤2和3中有 stab ,我猜这个(并添加一个紫色边框,这样你就可以在StackOverflow的白色背景上看到它)。我在图像下方添加一个1270像素高的透明区域。
convert A.png -background none -shave 10x10 xc:none[1x1270\!] -append b.png
第4步和第5步。如上所述。
或者你的意思是:
convert A.png -background magenta -shave 10x10 -gravity southeast -extent 1270x385 result.png
如果我们了解您的需求,我认为我们可以让您只使用一个命令,没有中间文件。