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

Как отображать и исследовать изображения в JES

6 min read Руководство Обновлено 19 Dec 2025
Отображение и исследование изображений в JES
Отображение и исследование изображений в JES

Человек, держащий полароидную фотографию перед лицом

Кому полезно

  • Учителям и ученикам, которые работают с JES и Jython.
  • Начинающим программистам, изучающим обработку изображений.

Важно: JES использует Jython — реализацию языка Python, синтаксис которой очень похож на Python 2. Обратите внимание на стиль вывода и функции, специфичные для JES.

Основные понятия в одну строку

  • Jython: версия Python, работающая на Java-платформе; в JES она используется для управления изображениями.
  • Picture/object: объект изображения внутри JES, создаётся через makePicture(file).
  • explore/show: функции для просмотра изображения в обычном и исследовательском режимах.

Что вы узнаете

  • Как запрашивать у пользователя файл изображения и отображать его.
  • Как получить ширину, высоту и путь файла изображения.
  • Как создать дубликат изображения для безопасного редактирования.
  • Как открыть режим исследования пикселей и читать координаты и RGB.

Быстрая справка по функциям (обзор)

  • pickAFile() — открывает диалог выбора файла и возвращает путь.
  • makePicture(path) — создаёт объект Picture из файла.
  • show(pic) — отображает изображение в отдельном окне.
  • explore(pic) — открывает окно исследования пикселей (показывает координаты и цвета).
  • duplicatePicture(pic) — возвращает клон изображения.
  • getWidth(pic), getHeight(pic) — возвращают размеры изображения.

Примечание: UI-кнопки JES остаются на английском: используйте кнопку Load Program для загрузки кода в среду и нажимайте Yes, если система спросит сохранить файл.

Как отобразить существующее изображение в JES

  1. Откройте программу JES на компьютере.
  2. В окне программирования в верхней части интерфейса создайте новую функцию displayPic().

Пример кода:

def displayPic():
    file = pickAFile()
    pic = makePicture(file)
    show(pic)
  1. Нажмите кнопку Load Program (между строкой команд и окном программирования). Когда появится запрос на сохранение, выберите Yes.
  2. Введите в строке команд вызов функции и нажмите Enter:
displayPic()

После запуска откроется проводник файлов — выберите изображение и нажмите Open. Изображение отобразится в новом окне.

Программа с функцией displayPic загружена в терминал

Окно выбора изображения в JES

Пляжная фотография, отображённая в отдельном окне

Важно: если изображение не отображается, проверьте путь файла и наличие расширения (.jpg, .png и т. п.).

Как вывести информацию об изображении (ширина, высота, путь)

Функции getWidth() и getHeight() позволяют получить размеры изображения. Также можно вывести путь к файлу для логирования или дальнейшей обработки.

def printHeightAndWidth():
    file = pickAFile()
    pic = makePicture(file)
    width = getWidth(pic)
    print "Width of the photo: " + str(width)
    height = getHeight(pic)
    print "Height of the photo: " + str(height)
    print "File Location: " + file

Порядок работы:

  1. Нажмите Load Program, подтвердите сохранение.
  2. Введите в командную строку:
printHeightAndWidth()

Откроется окно выбора файла; после выбора в командной строке вы увидите ширину, высоту и путь к файлу.

Программа с функцией printHeightAndWidth загружена в терминал

Окно выбора изображения в JES

Информация об изображении отображена в командной строке

Совет: используйте эту функцию перед автоматическими преобразованиями, чтобы проверить ожидаемые размеры.

Как создать дубликат изображения

Копирование изображения полезно, когда нужно сохранить оригинал без изменений и работать с копией.

def duplicateImage():
    file = pickAFile()
    originalPic = makePicture(file)
    pic2 = duplicatePicture(originalPic)
    show(originalPic)
    show(pic2)

Порядок действий: загрузите программу, вызовите duplicateImage(), выберите файл — откроются два окна: оригинал и клон.

Программа с функцией duplicatePic загружена в терминал

Два изображения, отрендеренные в JES

Важно: операции редактирования рекомендуется применять к клону (pic2), чтобы избежать потери исходных данных.

Как исследовать пиксели в изображении

Режим исследования позволяет кликнуть по пикселям и увидеть их координаты (x, y) и цвет в RGB. Это полезно для отладки алгоритмов фильтрации, подсчёта цвета и подбора пороговых значений.

def exploreImage():
    file = pickAFile()
    pic = makePicture(file)
    explore(pic)
    # или альтернативно:
    # openPictureTool(pic)

Порядок: загрузите функцию, выполните exploreImage(), выберите файл. В режиме explore кликните по пикселям — в панели вы увидите координаты и RGB-значения.

Программа с функцией explorePic загружена в терминал

Изображение в режиме исследования в JES

Полезно: сочетание explore() и печати getWidth/getHeight удобно для написания кода, который работает с координатами пикселей.


Отладка и распространённые проблемы

  • Ничего не отображается при show(pic): проверьте, что pic не равен None и что путь корректен.
  • Ошибка при makePicture(file): файл может быть повреждён или иметь неподдерживаемый формат.
  • Печать в командной строке выглядит странно: Jython в JES использует синтаксис print без скобок (Python 2-подобный). Не заменяйте print “…” на print(“…”) без проверки версии.
  • Диалог pickAFile() возвращает путь; если вы используете локали с нестандартными символами в путях, убедитесь, что JES корректно их обрабатывает.

Важно: сохраняйте изменения в коде перед нажатием Load Program. Несохранённые изменения не загрузятся в интерпретатор.

Альтернативные подходы

  • Автоматический выбор файла: вместо pickAFile() можно напрямую передавать строковый путь (например, “C:/images/photo.jpg”), если путь известен заранее.
  • Обработка пачки изображений: комбинируйте listdir/os.listdir (в Jython через Java API) и цикл для массовой обработки.
  • Использование сторонних библиотек: если JES ограничивает по функциональности, можно перейти на стандартный Python + Pillow для более сложной обработки.

Когда подход не подходит

  • JES удобен для образовательных целей, но для производственных задач и сложной обработки рекомендуется стандартный Python 3 с библиотеками Pillow, OpenCV.

Ментальные модели и лучшие практики

  • Всегда работайте с копией: оригинал = источник правды, копия = эксперимент.
  • Разделяйте «загрузку/просмотр» и «обработку» — это упрощает отладку.
  • Пишите небольшие функции с понятными именами: displayPic, printHeightAndWidth, duplicateImage, exploreImage.

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

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

  • Убедиться, что у студентов установлена совместимая версия JES.
  • Дать задание: реализовать displayPic и дополнительно — вывести размеры.
  • Подготовить набор изображений разных форматов для тестов.

Для ученика/студента:

  • Написать и загрузить displayPic().
  • Запустить функцию и выбрать изображение.
  • Изучить поведение explore() и зафиксировать RGB интересующих пикселей.

Для разработчика автоматизации:

  • Написать скрипт, который прогоняет папку изображений и логирует ширину/высоту.
  • Обработать ошибки чтения файла и неподдерживаемые форматы.

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

  • Функция displayPic() успешно открывает выбранный файл и отображает его в окне.
  • Функция printHeightAndWidth() печатает корректные численные значения ширины и высоты, совпадающие с параметрами окна просмотра и/или метаданными файла.
  • Функция duplicateImage() открывает два окна: оригинал и клон; клон является независимым объектом (изменения в нём не затрагивают оригинал).
  • Режим explore() показывает координаты и RGB при клике по пикселю.

Набор тестовых случаев

  1. Типичный файл JPG 1920x1080: все функции работают, размеры совпадают.
  2. Прозрачный PNG: explore() показывает альфу (если поддерживается) или корректные RGB.
  3. Повреждённый файл: makePicture() должен выдавать понятную ошибку — подтвердите, что программа не падает с необработанным исключением.
  4. Файл с кириллическими символами в имени: проверка корректности пути.

Мини‑методология для урока (45 минут)

  • 0–5 мин: вводная — что такое JES и Jython.
  • 5–20 мин: практика — написать displayPic(), загрузить и отобразить изображение.
  • 20–35 мин: добавить printHeightAndWidth(), прогнать тестовые изображения.
  • 35–45 мин: исследование пикселей (explore()), обсуждение применений и ограничений.

Краткий глоссарий (1 строка)

  • pickAFile: диалог выбора файла; makePicture: создание объекта изображения; show/explore: режимы просмотра; duplicatePicture: клонирование изображения.

Итог

Вы научились загружать и отображать изображения в JES, получать их размеры, создавать дубликаты и использовать режим исследования пикселей. Эти операции образуют базу для последующих упражнений по обработке изображений и фильтрации.

Важно: JES отлично подходит для обучения, но при переходе к промышленной обработке рассмотрите стандартные Python‑инструменты (Pillow, OpenCV).


Краткое резюме:

  • Используйте pickAFile() + makePicture() + show() для быстрого просмотра изображений.
  • getWidth()/getHeight() возвращают размеры; duplicatePicture() создаёт безопасную копию.
  • explore() помогает получать координаты и RGB конкретного пикселя для отладки алгоритмов.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

RDP: полный гид по настройке и безопасности
Инфраструктура

RDP: полный гид по настройке и безопасности

Android как клавиатура и трекпад для Windows
Гайды

Android как клавиатура и трекпад для Windows

Советы и приёмы для работы с PDF
Документы

Советы и приёмы для работы с PDF

Calibration в Lightroom Classic: как и когда использовать
Фото

Calibration в Lightroom Classic: как и когда использовать

Отключить Siri Suggestions на iPhone
iOS

Отключить Siri Suggestions на iPhone

Рисование таблиц в Microsoft Word — руководство
Office

Рисование таблиц в Microsoft Word — руководство