Imagemagick: переместить изображение в плавающий пиксель

Я хотел бы переместить изображение в положение с плавающей запятой, чтобы программа imagemagick заботилась о симуляции нецелого положения.

Теперь он округляет координаты.

Так что, если я попробую:

convert ( -size 640x360 xc:black ) ( rose: -geometry +10.5+10.5 ) -composite image.png

Я получу результат:

convert ( -size 640x360 xc:black ) ( rose: -geometry +10+10 ) -composite image.png

Поскольку я пытаюсь создать анимацию, перемещая изображение кадр за кадром, округленные координаты делают анимацию слишком резкой!

Ткс заранее! Néviton

1 ответ

Вам нужно будет удвоить размер рабочего холста, чтобы работать в целых числах, а затем уменьшить до 50% в конце.

convert ( -size 1280x720 xc:black ) ( rose: -scale 200% -geometry +21+21 ) -composite -resize 50% image.png

Обратите внимание на разницу между -scale а также -resize: -scale не выполняет интерполяцию (это то же самое, что -resize с -filter box; -resize интерполирует пикселей на основе -filter установка. Я использовал -scale для rose: image, потому что мы не хотим вносить никакого ухудшения в это первоначальное масштабирование нашего рабочего холста, но использовал -resize для окончательного уменьшения, потому что эффект интерполяции - это именно то, что нам нужно моделировать движение.

Другие вопросы по тегам