В этом обычном случае, когда нам нужно скомпоновать изображение на другом изображении, мы используем:
exec("convert 1.jpg 2.jpg -geometry +0+0 -compose DstOver -composite result.jpg);
и 0,0 точек — стартовая линия в левом месте картинки.
Мне нужно использовать мои точки с правой стороны, например, у меня есть файл jpg с высотой 500px и шириной 500px, и мне нужно составить image2 из 500,0. это не очень хорошо, потому что если ваш файл image2 имеет 100px по высоте и ширине 100px, ваш результат не изменяется.
Моя цель — создать с правой стороны изображения, потому что мой image2 имеет разную ширину и высоту каждый раз.
Я имею в виду, мне нужно составить из 3 и 4 точки, как на картинке.
я попробую Imagemagick разместить изображение в правом нижнем углу но это решение сочетаются с SouthEast, SouthWest и …
Мне нужно использовать мой размер геометрии и точек ..
С изображением с фиксированным размером у меня нет никаких проблем, но я создаю текст с помощью imagemagick, и он может иметь 1 символ или более, и в этом случае моя ширина текста PNG имеет другой размер.
Редактировать :
На самом деле я получаю текст от ввода и с другой длиной, а затем сочинять с фоновым изображением, как:
Хорошо, мне нужно составить с правым углом «Образец текста 2», как изображение, а не слева, как «Текст1», когда я создаю текстовый файл PNG, он может быть создан с различной шириной и высотой.
(извините, я не могу объяснить лучше и извините за мой плохой английский)
отредактированный
Хорошо, я все ближе к пониманию того, что вы хотите, первое замечание, что если вы укажете -gravity
тогда смещение в geometry
относительно силы тяжести — оно перемещает наложенное изображение ВНУТРИ из угла силы тяжести на величину, указанную в геометрическом смещении. Итак, давайте начнем с установки силы тяжести на NorthEast, чтобы поместить наложение в верхний правый угол:
convert background.jpg overlay.jpg -gravity northeast -composite out.jpg
Теперь давайте получим ширину наложения и используем его для расчета требуемой геометрии, предполагая, что вы хотите, чтобы наложенное изображение имело правый край на расстоянии 50 пикселей от правого края фона:
geom=$(convert overlay.jpg -print "+%[fx:w+50]+0" null:)
echo $geom # this is just to show what is happening - you don't need it
+150+0
convert background.jpg overlay.jpg -gravity northeast -geometry $geom -composite out.jpg
Конечно, вы можете сделать это одной командой:
convert background.jpg overlay.jpg -gravity northeast -geometry $(convert overlay.jpg -print "+%[fx:w+50]+0" null:) -composite out.jpg
Оригинальный ответ
Извините, но я все еще не совсем понимаю, о чем вы спрашиваете, поэтому я отвечу на то, что, по вашему мнению, вы имеете в виду, и, возможно, вы сможете объяснить, что не так с моим пониманием.
convert -size 500x500! xc:red background.jpg # make a big red background
convert -size 100x100! xc:blue overlay.jpg # make a smaller blue overlay
# place overlay on image at desired position
convert background.jpg overlay.jpg -geometry +360+40 -composite out.jpg
Других решений пока нет …