Как да създадем програмно генератор на миниатюри за YouTube в Java
Въведение
Целта на този документ е да демонстрира API употребата на някои съставни инструменти на Aspose.PSD за Java на реален пример. В тази статия ще бъде написана и обяснена проста Java програма, която генерира миниатюри за YouTube за канала на DW Documentary. Този канал е избран от реалния свят, защото неговите миниатюри са доста стандартни и илюстрират употребата на няколко популярни съставни инструменти на Aspose.PSD за Java (например, ефект за сянка, пълнене с радиални градиенти, рисуване на текст и форми):
Как работи в най-общи линии
Проста Java програма приема два аргумента: заглавие и изображение. В паметен документ на Photoshop (PSD) се генерира от този вход, използвайки Aspose.PSD за Java. След това програмата конвертира документа от PSD в PNG файлов формат, за да получи миниатюра на YouTube с размер от 1280х720 пиксела. Изходното изображение прилича на следното:
Технически изисквания
Следните технологии са необходими за успешното изпълнение на кода от тази статия:
- Java 6+
- Aspose.PSD за Java (най-нова версия)
Започване
Както вече беше споменато, програмата използва вътрешен PSD, за да създаде миниатюра. Затова, нека създадем PSD документ, за да започнем:
PsdImage psdImage = new PsdImage(1280, 720);
Ако погледнете по-внимателно миниатюрата на YouTube по-горе, може да забележите, че тя се състои от няколко компонента:
- фоново изображение (отпечатан маскиран)
- радиален PSD градиент (осветява областта в горния десен ъгъл)
- лого с ефект на сянка
- заглавие и просто рисуване (син прямоъгълник)
Нека се потопим по-дълбоко, за да видим как да реализираме всеки от тези компоненти, използвайки Aspose.PSD за Java в следващите раздели.
1. Добавяне на фоново изображение
Редът на слоевете е важен. Затова, фоновото изображение трябва да се добави първо, за да не прекрива други слоеве. Обърнете внимание, че в момента се поддържат само растерни файлови формати.
1.1. Добавяне на фоново изображение към слой в Photoshop
За да добавите растерно изображение в PSD, трябва да предадете поток на вход като аргумент по време на създаването на слоя (вижте повече примери за зареждане на растерни изображения):
1.2. Съобразете фоновото изображение с размера на платното
Следващите 2 действия (преоразмеряване, позициониране) са полезни за случаите, когато размерът на изображението се различава от размера на платното, въпреки че изображението в тази статия има същия размер като платното (предполагаме, че това няма да бъде винаги така).
Уверете се, че зареденото изображение се вмества в размера на платното (вижте повече примери за преоразмеряване):
След преоразмеряването позицията на изображението се променя. Следователно, за нулиране на позицията на изображението, преместете преоразмереното изображение в горния ляв ъгъл:
2. Добавяне на радиален градиент
Има два начина за добавяне на радиален градиент, използвайки:
- ефект за преливане на градиент върху съществуващ слой (ефект за градиент, който се свързва с текущия слой и се прилага към неговото съдържание)
- нов слой за пълнене с градиент (отделен слой, който поддържа самостоятелна конфигурация на градиента)
За този пример е достатъчно да се използва ефекта за преливане на градиент. Въпреки това, за да направим тази статия по-интересна и полезна, е използван слоя за пълнене с градиенти, тъй като всички ефекти на слоя се прилагат по сходен начин и друг ефект на слоя ще бъде използван в следващия раздел.
2.1. Добавяне на слой за пълнене с радиален градиент
Процесът на добавяне на нов слой за пълнене с градиент се състои от следните 2 стъпки:
\1. Необходимо е да се декларират настройките за пълнене с градиент, тъй като няма предварително зададени такива. Минималната изисквана конфигурация изглежда като следната (имайки предвид, че са необходими свойства като тип на градиента, мащаб, цветове и прозрачни точки):
Горепосочената конфигурация декларира радиален градиент, който е прозрачен по краищата и тъмно син в средата. Положението на градиента е в средата на платното по подразбиране.
За обръщане на пълненето с градиент и леко изместване към горния десен ъгъл използвайте съответните незадължителни свойства:
\2. Когато конфигурацията е приключена, добавете слой за пълнене с градиент заедно с настройките му в PSD:
Добавяне на лого с ефект на сянка
Сянката е ефект, който позволява да се добави персонализирана сянка по контура на обекта (изображение, текст и т.н.).
3.1. Добавяне на лого в Photoshop слой
Същият подход като в раздел 1.1. може да се използва за добавяне на лого в PSD:
3.2. Позициониране на логото
Зареденото изображение по подразбиране е залепено близо до горния ляв ъгъл. Въпреки това е необходимо да се добавят някои отмествания, за да прилича на оригиналната миниатюра на YouTube в канала. Следователно позицията на изображението трябва да бъде изместена от ръбовете на слоя:
3.3. Добавяне на ефект за сянка на логото
Логото може да бъде невидимо, ако се използва светло фоново изображение. Поради това е желателно да се добави ефект за сянка на логото чрез свойството за смесване на опциите за ефекти на слоевете (вижте още примери за сенки):
Ефектът за сянка няма нужните свойства поради настройката по подразбиране (изглежда като този на Photoshop). Въпреки това сенката по-горе е модифицирана, за да изглежда като полу-прозрачна граница с размазани ръбове.
4. Добавяне на рисуване на текст и форма
3.1. Създаване на графичен слой
Рисуването не се поддържа директно от обикновен слой. Поради това се използва графичният двигател до слоя, за да предостави API за рисуване (вижте още примери за рисуване):
Layer graphicLayer = psdImage.addRegularLayer(); Graphics graphics = new Graphics(graphicLayer);
3.2. Рисуване на текст на няколко реда
Опитен читател може да попита: защо не използваме слой за текст, за да добавим текст? Е, има няколко причини: изпращането на текст не е необходимо в този случай, тъй като PSD се генерира от самото начало всеки път; персонализацията на шрифт не се поддържа от API за текст все още (v20.6 към времето на писане).
Лесно е да се нарисува текст с персонализиран шрифт - просто създайте желания шрифт и извикайте съответния метод от графичния двигател. Въпреки това, за да се създаде правоъгълник (вижте подробности в следващия раздел), който променя височината си автоматично в зависимост от броя редове текст, се изисква малко по-голямо усилие. Точната височина на всички редове трябва първо да бъде изчислена:
Където 1.15 е височината на реда, 3 е отстоянието на текста.
3.3. Рисуване на правоъгълник
Правоъгълникът също е лесен за рисуване дори с градиентна четка (