Могу ли я составить с правой стороны с imagemagick?

В этом обычном случае, когда нам нужно скомпоновать изображение на другом изображении, мы используем:

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, он может быть создан с различной шириной и высотой.
(извините, я не могу объяснить лучше и извините за мой плохой английский)

0

Решение

отредактированный

Хорошо, я все ближе к пониманию того, что вы хотите, первое замечание, что если вы укажете -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

введите описание изображения здесь

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]