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

Как отображать и исследовать изображения в 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
Автор
Редакция

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

WordPress: проверить и защитить от wp3.xyz
Безопасность

WordPress: проверить и защитить от wp3.xyz

Настроить sudo без пароля в Linux
Linux

Настроить sudo без пароля в Linux

Пригласить и управлять соавторами на Wix
Веб‑сайты

Пригласить и управлять соавторами на Wix

Как продлить срок службы Lightning кабеля iPhone
Гаджеты

Как продлить срок службы Lightning кабеля iPhone

Официально восстановленные Pixel от Google
Обзоры

Официально восстановленные Pixel от Google

Как найти чей-то email: проверенные приёмы
Инструкции

Как найти чей-то email: проверенные приёмы