Як створити генератор зображень ескізів YouTube програмно в Java

Вступ

Метою цього документа є продемонстрація використання API для деяких складних інструментів Aspose.PSD для Java на реальному прикладі. У цій статті буде розглянуто просту Java-програму, яка створює зображення ескізів YouTube для каналу DW Documentary. Цей канал був обраний з реального життя, оскільки його зображення ескізів є досить стандартними та ілюструють використання декількох популярних складних інструментів Aspose.PSD для Java (наприклад, ефект падаючою тіні, радіальне градієнтне заповнення, малювання тексту та форм):

todo:image_alt_text

Як це працює у декількох словах

Проста Java-програма приймає на вхід два аргументи: підпис та зображення. В пам’яті створюється документ Photoshop (PSD) із цих вхідних даних за допомогою Aspose.PSD для Java. Після цього програма конвертує документ з PSD у PNG для отримання ескізу YouTube розміром 1280x720 пікселів. Отримане зображення виглядає приблизно так:

todo:image_alt_text

Технічні вимоги

Для успішного запуску коду цієї статті потрібні наступні технології:

Початок роботи

Як уже зазначалося, програма використовує PSD в пам’яті для створення ескізу. Тому давайте створимо документ PSD, щоб почати:

PsdImage psdImage = new PsdImage(1280, 720);

Якщо ви детально розглянете ескіз YouTube вище, ви можете помітити, що він складається з кількох компонентів:

  1. фонового зображення (надруковане маски)
  2. радіального градієнту psd (підсвічує область у верхньому правому куті)
  3. логотипу з ефектом падаючої тіні
  4. підпису та простого малюнка (синій прямокутник)

Давайте заглибимося глибше, щоб побачити, як реалізувати кожну з цих компонент з використанням 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 на час написання).

Легко намалювати деякий текст із кастомізованим шрифтом - просто створіть бажаний шрифт і викличте відповідний метод з двигуну для графіки. Однак, для створення прямокутника (див. деталі в наступному розділі), який автоматично змін