Гид по технологиям

Добавление текста на изображение в JES

4 min read Учебник Обновлено 19 Dec 2025
Добавление текста на изображение в JES
Добавление текста на изображение в JES

Ноутбук на столе с подключёнными гаджетами

Важно: JES использует Jython — синтаксис близок к Python, но с доступом к Java-классам.

К чему это служит

JES (Jython Environment for Students) — среда разработки, ориентированная на работу с мультимедиа. Основные сценарии добавления текста:

  • аннотация фото (подписи, водяные метки);
  • создание тестовых изображений с координатными метками;
  • добавление подписи в образовательных проектах и заданиях.

Как добавить текст на изображение (быстрый пример)

Ниже — минимальный пример функции, которая выбирает файл, добавляет текст в позицию (50, 50) и показывает изображение.

def textOnImage():
    file = pickAFile()
    pic = makePicture(file)
    txt = "This is a test."
    addText(pic, 50, 50, txt)
    show(pic)

Пояснения:

  • pickAFile() открывает диалог выбора файла на локальной машине;
  • makePicture(file) создаёт объект изображения, с которым работают остальные функции;
  • addText(pic, x, y, txt) рисует текст в координатах x, y; по умолчанию цвет — чёрный;
  • show(pic) отображает итог в окне JES.

Совет: избегайте переименования стандартных функций и переменных (например, не используйте имя “str” для переменной текста).

Кнопка загрузки программы в JES

Параметры цвета и позиционирования

Вы можете задать цвет как пятый аргумент. JES поддерживает стандартные цвета (blue, red, green и т. п.). Пример:

addText(pic, 100, 100, txt, blue)

Координаты (0,0) обычно находятся в левом верхнем углу изображения; x растёт вправо, y — вниз.

Запуск функции textOnImage в командной строке JES

Отображение изображения с текстом

Как добавить стилизованный текст

Если нужно управлять шрифтом и размерами, используйте addTextWithStyle() и makeStyle(). Для доступа к константам стиля импортируйте java.awt.Font.

import java.awt.Font as Font

def StyledTextOnImage():
    file = pickAFile()
    pic = makePicture(file)
    txt = "This is a test."
    myFont = makeStyle("Arial", Font.BOLD, 64)
    addTextWithStyle(pic, 50, 50, txt, myFont)
    show(pic)

Параметры makeStyle():

  • первый аргумент — семейство шрифта (“Arial”, “Times New Roman” и т.д.);
  • второй аргумент — стиль: Font.PLAIN, Font.BOLD, Font.ITALIC (зависит от доступности шрифтов);
  • третий аргумент — размер в пунктах.

Чтобы задать цвет для addTextWithStyle(), добавьте шестой аргумент:

addTextWithStyle(pic, 100, 100, txt, myFont, blue)

Кнопка загрузки программы в JES

Запуск функции StyledTextOnImage в командной строке JES

Отображение изображения со стилизованным текстом

Расширенные приёмы и советы по качеству

  • Антиалиасинг: если текст выглядит «рвано», проверьте настройки рендеринга в JES или экспортируйте изображение и примените сглаживание в более мощной библиотеке.
  • Позиционирование по центру: для центрирования текста вычисляйте ширину текста и картинки — JES не всегда предоставляет готовую функцию измерения текста; можно вручную подобрать смещение.
  • Несоответствие шрифтов: некоторые системы не имеют всех семейств шрифтов. Если выбранный шрифт недоступен, JVM подставит альтернативу.
  • Перенос строки: addText и addTextWithStyle обычно не обрабатывают автоматический перенос. Разбивайте строки вручную и вызывайте addText для каждой строки с увеличенным y.

Когда этот подход не годится

  • Если нужно динамически вычислять размеры текста (измерять ширину/высоту) — JES ограничен; лучше использовать Pillow (Python) или Java2D напрямую.
  • Для пакетной обработки тысяч изображений лучше применять скрипты на ImageMagick или библиотеке Pillow для скорости и масштабируемости.

Альтернативы

  • Pillow (Python): богатые возможности стилизации, измерения текста и рендеринга шрифтов.
  • ImageMagick/GraphicsMagick: утилиты командной строки и API для массовой обработки.
  • Java2D: если нужен полный контроль над графикой в JVM.

Мини-методология: быстрый рабочий процесс

  1. Определите цель текста (метка, подпись, водяной знак).
  2. Выберите шрифт и размер, протестируйте на одном изображении.
  3. Настройте координаты и цвет, проверьте читаемость на типичном фоне.
  4. Автоматизируйте цикл (если нужно обрабатывать несколько файлов).
  5. Сохраните итог и проверьте экспорт в нужном формате (PNG для прозрачности, JPEG для фото).

Контроль качества и тесты

Критерии приёмки:

  • Текст отображается в указанных координатах;
  • Шрифт, размер и цвет соответствуют требованиям;
  • Текст остаётся читаемым на основных вариантах фона.

Тест-кейсы:

  • Однострочный текст, позиция в углу;
  • Многострочный текст с ручным переносом;
  • Цвет текста совпадает с переданным аргументом;
  • Несуществующий шрифт — проверить поведение.

Роли и чек-листы

Для преподавателя:

  • проверить, что ученики используют pickAFile() и show();
  • убедиться, что код простой и комментированный.

Для студента:

  • протестировать функции на разных изображениях;
  • сдавать код с примерами входных файлов.

Короткий глоссарий

  • pickAFile(): диалог выбора файла;
  • makePicture(): создаёт объект изображения;
  • addText(): добавляет простой текст;
  • makeStyle(): создаёт объект стиля шрифта;
  • addTextWithStyle(): добавляет текст с указанным стилем;
  • show(): отображает изображение в окне JES.

Заключение

Добавление текста в JES — быстрый способ аннотировать изображения в учебных проектах. Для базовых задач достаточно addText() и addTextWithStyle(). Если нужны продвинутые операции (измерение текста, пакетная обработка, продвинутая типографика), рассмотрите вспомогательные инструменты, такие как Pillow или ImageMagick.

Ключевые шаги: выбрать файл — создать картинку — задать текст и стиль — показать или сохранить результат.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Espanso: руководство по текстовому экспандеру
Software

Espanso: руководство по текстовому экспандеру

Изменение буквы диска в Windows 10/11
Windows

Изменение буквы диска в Windows 10/11

Перенос игр Steam на другой диск
Игры

Перенос игр Steam на другой диск

Отключение Metro в Windows 8
Windows

Отключение Metro в Windows 8

Отправка SMS с электронной почты
Руководство

Отправка SMS с электронной почты

Сканирование файла или папки в Microsoft Defender
Безопасность

Сканирование файла или папки в Microsoft Defender