Преобразуйте группу файлов .psd или аналогичного формата, пометьте каждое изображение (с небольшой тенью) и запишите несколько изображений jpg с разным разрешением. - PullRequest
0 голосов
/ 16 июня 2020

Я уже некоторое время работаю над сценарием (не скажу, как долго ?), который простыми словами предназначен для выполнения того, что описано выше. Может быть полезно отметить, что этот сценарий выполняется в экземпляре узла, поскольку он в конечном итоге используется в сценарии развертывания через GH Actions.

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

версия imagemagick

Version: ImageMagick 7.0.10-13 Q16 x86_64 2020-05-17 https://imagemagick.org
Copyright: © 1999-2020 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(3.1)
Delegates (built-in): bzlib freetype gslib heic jng jp2 jpeg lcms ltdl lzma openexr png ps tiff webp xml zlib

Это моя текущая итерация:

Единственные элементы, которые меняются при запуске: производный размер , которые я собираю из исходное изображение и переход к следующему процессу и storedGravity , который исходит от объекта json и привязан как данные к исходному изображению. Параметр производный размер должен был решить проблему с меткой, установленной по умолчанию и выходящей на разной высоте.

convert -background none -fill white -density 90 \
    -size x250 -font "Helvetica-Bold" \
    label:Hello \( +clone -background black -shadow 90x3+10+10 \) \
    +swap -background none -layers merge \
    \( beautiful_grass_psd.psd -flatten -strip \) \
    +swap -gravity SouthWest -geometry +30+30 -composite +repage \
    \( -clone 0 -resize 240 -write newfile@1.jpg \) \
    \( -clone 0 -resize 480 -write newfile@2.jpg \) \
    \( -clone 0 -resize 960 -write newfile@4.jpg \) null:

Ограничения

  1. Этикетка должна располагаться в обозначенном углу под действием силы тяжести, с отступом от угла на одинаковое количество изображений
  2. Этикетка должна быть с резкими краями и немного выступать из кадра, в настоящее время это достигается с помощью тени, это необходимо для сохранять читаемость и следить за тем, чтобы, например, белые буквы не переходили в похожий цвет в кадре изображения
  3. Размер шрифта должен колебаться в районе 14-18 пикселей при ширине 240, в точках идеальный вид кажется где-то около 16pt

Проблемы, с которыми я сталкиваюсь:

  1. Похоже, этикетка имеет небольшую размытость, от которой я не могу избавиться. Это, может быть, в основном связано с преобразованием в JPEG? Не уверен
  2. Кажется, что позиция смещается в зависимости от изображения, что немного сбивает с толку, может быть, я ошибаюсь в геометрии?

То, что я пробовал по проблеме

    1. настроить тень - это, кажется, немного помогает, но имеет жесткие ограничения, а также кажется наиболее эффективным при увеличении размера шрифта и Я хотел бы попытаться сохранить относительный размер шрифта около
    2. удалить модификаторы качества при записи - это, похоже, немного улучшит ситуацию, что ожидается ... ?
    3. удалите действие mpr: image и запишите каждое изображение индивидуально - это не очень хорошо, потому что для этого требуется просто кучу дополнительных узловых процессов, мне вроде как понравилось, что вы могли передать изображение таким образом , но, возможно, есть лучший способ сохранить точность воспроизведения 2.
    4. в основном просто возиться с настройками геометрии

Ссылки на ресурсы

  1. https://imagemagick.org/Usage/text/
  2. https://imagemagick.org/discourse-server/viewtopic.php?t=25073 - что заставляет меня думать, что, возможно, мне не нужен mpr
  3. http://www.imagemagick.org/discourse-server/viewtopic.php?t=35202

Возможная альтернатива пути

  1. Аннотировать? - обеспечивает ли это лучшую точность воспроизведения?
  2. возможно, основная проблема заключается в простом формате с потерями в конце строки?

EDIT - добавлена ​​новейшая итерация скрипта, а также IM версия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...