Как вывести картинку в java

Загрузка и сохранение изображений при помощи библиотеки ввода/вывода изображений (Image I/O Library)

Содержание

Введение

public class GetList <
public static void main ( String args []) <
String readerNames [] = ImageIO.getReaderFormatNames () ;
printlist ( readerNames, «Reader names:» ) ;
String readerMimes [] = ImageIO.getReaderMIMETypes () ;
printlist ( readerMimes, «Reader MIME types:» ) ;
String writerNames [] = ImageIO.getWriterFormatNames () ;
printlist ( writerNames, «Writer names:» ) ;
String writerMimes [] = ImageIO.getWriterMIMETypes () ;
printlist ( writerMimes, «Writer MIME types:» ) ;
>

Выполнив программу GetList в базовой реализации Sun (при условии, что не установлены никакие другие провайдеры), вы должны увидеть следующее:

Программа ReadSharp

import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
import java.awt.*;
import javax.swing.*;

public class ReadSharp <
private static class FrameShower implements Runnable <
final Frame frame;

При выполнении программы ReadSharp введите название изображения в командной строке. Используем, например, изображение из Digital Images with ConvolveOp от 10 февраля 2004 года.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

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

Запись изображений

Запись изображений может быть столь же проста, как и их чтение, хотя можно также определить метаданные, если необходим больший контроль. В базовом варианте есть три формы метода write:

Все три формы метода write возвращают логическое значение (boolean). Оно указывает, доступен ли соответствующий объект в системе. Например, при запросе GIF-писателя возвратится false, потому что такого объекта нет в системе.

Определение метаданных посредством класса ImageWriteParam

Теперь установите качество сжатия при помощи:

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

Программа Compress

import java.awt.image.*;
import javax.imageio.*;
import javax.imageio.stream.*;
import java.io.*;
import java.util.Iterator;

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Подробная информация по Image I/O Library приведена в Java Image I/O API Guide.

Источник

Apache NetBeans 12.6

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.

Введение

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

Создание приложения

Выберите команду «Файл» > «Новый проект».

В мастере создания проекта выберите «Java» > «Приложение Java», затем нажмите кнопку «Дальше».

Снимите флажок «Создать главный класс».

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Нажмите кнопку ‘Готово’.

Создание формы приложения

В примере в этом разделе будет создана форма JFrame, и в нее добавлена метка JLabel.

Создание формы JFrame:

Щелкните правой кнопкой узел «Исходные файлы» и выберите форму «Создать» > «JFrame».

Нажмите кнопку ‘Готово’.

Добавление надписи:

В разделе «Палитра» выберите компонент «Метка» и перетащите его в форму.

Форма должна принять следующий вид:

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Добавление пакета для изображения

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

Создание пакета для изображения:

В окне ‘Проекты’ щелкните правой кнопкой мыши узел org.me.myimageapp и выберите ‘Создать’ > ‘Пакет Java’.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Нажмите кнопку ‘Готово’.

В окне ‘Проекты’ в папке Исходные пакеты отображается новый пакет.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Вывод изображения в качестве метки

В этом приложении изображение будет встроено в компонент JLabel.

Добавление изображения к метке:

В редакторе GUI Designer выберите метку, добавленную ранее в форму.

В окне «Свойства» щелкните категорию «Свойства» и выполните прокрутку до свойства «Значок».

Нажмите кнопку со многоточием (…​). Отображается редактор свойств значка.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

В диалоговом окне свойств значка щелкните Import to Project («Импорт в проект»).

В окне выбора файлов выберите любое сохраненное в компьютере изображение. Затем нажмите кнопку «Дальше».

На странице ‘Выбор целевой папки’ выберите папку newpackage и нажмите ‘Готово’.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Нажмите ОК, чтобы закрыть диалоговое окно свойств значка.

При нажатии на кнопку OK IDE выполняет следующие действия:

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

Создание кода, реализующего доступ к изображению, в классе «ImageDisplay».

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

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Теперь можно выполнить несколько действий по оптимизации вида формы, например:

Перетащите jLabel1 в центральную область формы.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Просмотр созданного кода:

В средстве проектирования GUI нажмите кнопку ‘Исходный код’. (Если кнопка ‘Исходный код’ скрыта, выберите Вид > Панель редактора исходного кода в главном меню.)

Прокрутите вниз до строки «Созданный код».

Щелкните значок (+) слева от строки «Созданный код» для просмотра кода, созданного GUI Designer.

Основная строка выглядит следующим образом:

Примечания

Если в редакторе свойств значка установить параметр «Внешнее изображение», то средой IDE будет создан абсолютный путь к изображению, т.е. само изображение не будет скопировано в проект. Как следствие, при запуске приложения на этом же компьютере изображение появится, а при запуске на другом компьютере — скорее всего, нет.

Метод getResource также используется для доступа к другим ресурсам, таким как текстовые файлы с какими-либо данными, используемыми в приложении.

Чтобы зарегистрировать обработчики для событий мыши на Jlabel:

В режиме конструирования щелкните правой кнопкой мыши объект JLabel и выберите События > Мышь > mouseClicked/mousePressed/mouseReleased в контекстном меню. Для выбранного события создается обработчик событий.

Показ изображения как фона в кадре

Конструктор графического интерфейса не поддерживает напрямую использование JFrame как фонового изображения, поскольку такой поддержки нет в Swing. Тем не менее, этой цели можно достигнуть различными непрямыми путями. В этом приложении JLabel с изображением будет внедрен в компонент JFrame, тогда как JPanel будет размещен над JLabel и использован как родительский элемент для всех компонентов.

Добавление прозрачного компонента JPanel к JFrame внутри изображения:

Выберите команду «Файл» > «Новый проект».

В мастере создания проекта выберите «Java» > «Приложение Java», затем нажмите кнопку «Дальше».

Снимите флажок «Создать главный класс».

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Нажмите кнопку ‘Готово’.

Щелкните правой кнопкой узел «Исходные файлы» и выберите форму «Создать» > «JFrame».

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Нажмите кнопку ‘Готово’.

В режиме конструирования щелкните правой кнопкой мыши объект JFrame и выберите ‘Выбрать макет > Макет контейнера сетки’ в контекстном меню.

Щелкните правой кнопкой мыши объект JFrame и выберите Добавить из палитры > Контейнеры Swing > Панель в контекстном меню.

Щелкните правой кнопкой мыши объект JFrame и выберите Добавить из палитры > Элементы управления Swing > Метка в контекстном меню.

В окне ‘Проекты’ щелкните правой кнопкой мыши узел org.me.mybackgroundapp и выберите ‘Создать’ > ‘Пакет Java’.

Нажмите кнопку «Готово». В результате будет добавлен новый пакет.

В редакторе GUI Designer выберите метку, добавленную ранее в форму.

В окне «Свойства» щелкните категорию «Свойства» и выполните прокрутку до свойства «Значок».

Нажмите кнопку со многоточием (…​).

В диалоговом окне свойств значка щелкните Import to Project («Импорт в проект»).

В окне выбора файлов выберите любое сохраненное в компьютере изображение. Затем нажмите кнопку «Дальше».

На странице ‘Выбор целевой папки’ в мастере выберите каталог ресурсов newpackage и нажмите ‘Готово’.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Нажмите ОК, чтобы закрыть диалоговое окно свойств значка.

В навигаторе щелкните правой кнопкой мыши jPanel и выберите ‘Свойства’ во всплывающем меню.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Выберите «Close» (Закрыть).

Повторите шаги 24 и 25 для jLabel.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Фон готов. Теперь можно, например, перетащить jLabel и jTextField в jPanel из Palette. Оба они будут отображены поверх фонового изображения.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Примечание. Преимуществом описанного решения является то, что фоновое изображение показывается как в ходе разработки, так и во время выполнения.

Сборка и запуск приложения

На данном этапе после создания кода, реализующего доступ к изображению и вывод его на экран, можно выполнить сборку и запуск приложения и проверить правильность вызова изображения.

Сначала необходимо указать главный класс проекта. При назначении главного класса среда IDE получает информацию о том, какой класс следует запускать при запуске проекта. Кроме того, таким образом обеспечивается создание элемента Main-Class в архиве JAR приложения при его сборке.

Для назначения главного класса проекта выполните следующие действия:

Правой кнопкой щелкните узел «ImageDisplayApp» проекта и выберите «Свойства».

В диалоговом окне «Свойства проекта» выберите категорию «Выполнение».

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Нажмите кнопку ‘Выбрать основной класс’.

Нажмите кнопку «ОК» для закрытия диалогового окна «Свойства проекта».

Для сборки проекта:

Выберите Запуск > Очистить и собрать проект (project_name) на главной панели инструментов.

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Для запуска проекта выполните следующие действия:

Выберите Запуск > Запуск проекта (project_name) на главной панели инструментов.

Создание пользовательского кода

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

Если требуется предоставить возможность выбора изображения в исходном коде, то можно написать пользовательский код для вызова и отображения необходимых ресурсов. В среде IDE не предусмотрена возможность добавления кода в «защищенные блоки», содержащие созданный GUI Builder код, в режиме просмотра исходного кода. Однако существует возможность вставки кода в защищенные блоки с помощью редакторов свойств, которые можно вызвать в окне «Свойства». Если использовать в этих целях редакторы свойств, то пользовательский код не будет потерян при внесении изменений в GUI Builder.

Например, для вставки пользовательского кода в свойство icon метки JLabel выполните следующие действия:

Выберите JLabel в представлении ‘Конструирование’ или в окне ‘Навигатор’.

В раскрывающемся списке в верхней области диалогового окна выберите параметр «Пользовательский код».

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Заключение

В этом руководстве описывается получение доступа к изображениям из приложения, созданного в IDE NetBeans. Более подробно работа с изображениями рассматривается в учебном курсе по Java.

Источник

Работа с изображениями на Java

Краткий обзор нескольких библиотек обработки изображений Java, включая простой пример, выполненный во всех из них

1. Обзор

В этом уроке мы рассмотрим несколько доступных библиотек обработки изображений и выполним простую операцию обработки изображений – загрузим изображение и нарисуем на нем фигуру.

Мы попробуем МОКРУЮ (и немного качающуюся) библиотеку, ImageJ, OpenIMAJ и двенадцать обезьян.

2. AWT

AWT-это встроенная библиотека Java, которая позволяет пользователю выполнять простые операции, связанные с отображением, такие как создание окна, определение кнопок и прослушивателей и так далее. Он также включает в себя методы, позволяющие пользователю редактировать изображения. Он не требует установки, так как поставляется с Java.

2.1. Загрузка изображения

Первое, что нужно сделать, это создать объект BufferedImage из изображения, сохраненного на нашем диске:

2.2. Редактирование изображения

2.3. Отображение изображения

Теперь, когда мы нарисовали что-то на нашем изображении, мы хотели бы показать это. Мы можем сделать это с помощью объектов библиотеки Swing. Сначала мы создаем JLabel объект, представляющий область отображения текста или/и изображения:

3. ImageJ

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

3.1. Зависимость Maven

Чтобы начать работу с ImageJ, просто добавьте зависимость в вашего проекта pom.xml файл:

3.2. Загрузка изображения

Чтобы загрузить изображение, вам нужно использовать метод open Image() static, из I J класс:

3.3. Редактирование изображения

Для редактирования изображения нам придется использовать методы из Image Processor object, прикрепленные к нашему ImagePlus объекту. Думайте об этом как о Графике объекте в AWT:

3.4. Отображение изображения

Вам нужно только вызвать show() метод Image Plus object:

4. OpenIMAJ

OpenIMAJ – это набор библиотек Java, ориентированных не только на компьютерное зрение и обработку видео, но и на машинное обучение, обработку аудио, работу с Hadoop и многое другое. Все части проекта OpenIMAJ можно найти здесь в разделе “Модули.” Нам нужна только часть обработки изображений.

4.1. Зависимость Maven

Чтобы начать работу с OpenIMAJ, просто добавьте зависимость в вашего проекта pom.xml файл:

4.1. Загрузка изображения

Чтобы загрузить изображение, используйте метод ImageUtilities.readMBF() :

MBF означает многополосное изображение с плавающей запятой (RGB в этом примере, но это не единственный способ представления цветов).

4.2. Редактирование изображения

Чтобы нарисовать прямоугольник, нам нужно определить его форму, которая представляет собой многоугольник, состоящий из 4 точек (верхний левый, нижний левый, нижний правый, верхний правый):

Как вы могли заметить, при обработке изображений ось Y меняется на противоположную. После определения формы нам нужно нарисовать ее:

4.3. Отображение изображения

Нам нужно использовать Утилиты отображения :

5. Изображение TwelveMonkeys

Библиотека TwelveMonkeys |/ImageIO предназначена для расширения Java ImageIO API, с поддержкой большего количества форматов.

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

6. Резюме

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

Для этих целей, возможно, было бы лучше начать изучать ImageJ или OpenIMAJ. Оба они легко включаются в проект и гораздо более мощны, чем AWT, в отношении обработки изображений.

Источник

Компьютерная графика → Работа с изображениями в Java: чтение, запись, изменение

Так, как основным языком в этом курсе стал язык Java. Покажу пример того как работать с файлами изображений в Java, чтобы вам не пришлось долго искать как это делать. Для других языков руководства можно найти в Интернете.

Того, что здесь будет показано вполне достаточно чтобы выполнить все лабы.

Итак, поехали.

Класс импортируется с пакета java.awt.image:

Для открытия изображения будем использовать два класса: File, ImageIO:

В параметра конструктора класса File, мы должны указать путь до файла. Путь может быть абсолютным, либо относитьтельно корня проекта. Можно открывать картинки с расширением jpg, png, bmp.

После этого в объекта image у нас будет храниться вся картинка, которую мы открыли. Мы можем получить у этой картинки значение любого пикселя в виде цвета в RGB. Чтобы получить цвет какого либо пикселя нам нужен класс Color:

Чтобы получить цвет из пикселя с координатами [20, 20] нужно написать:

Тут также показано как получить значение каждого канала(красный, зеленый, синий) этого цвета. Значения каналов находятся в диапазоне [0, 255].

Значения этих каналов мы будем использовать для обработки изображений. После обработки мы обычно получаем новые значения для каждого канала. Чтобы объединить три канала в один цвет, создаем новый объект класса Color:

Затем, мы можем установить этот цвет как цвет какого-либо пикселя в изображение:

После того, как мы обработали изображение, его нужно сохранить обратно в файл:

Вместо «jpg» можно использовать также «png» или «bmp».

Давайте для примера я напишу приложение, которое будет превращать исходное изображение в черно-белое, используя то, что написано в статье.

Обычно для результирующего изображения создается новый объект типа BufferedImage такого же размера и типа, как исходное изображение:

Преобразователь в черное белое

Возьмем для примера любое цветное изображение. Например:

Как вывести картинку в java. Смотреть фото Как вывести картинку в java. Смотреть картинку Как вывести картинку в java. Картинка про Как вывести картинку в java. Фото Как вывести картинку в java

Поместим его в корень проекта.

Запустив эту программу мы получим новую картинку в той же папке где и исходная картинка. И она должна быть такой:

Источник

Как вывести картинку в java

Java работает с наиболее популярными во Всемирной паутинеформатами изображений — JPEG и GIF. JPEG лучше подходит для естественных цветныхизображений, таких, как фотографии, а формат GIF является наилучшими дляграфических эмблем, изображений кнопок, и т.п.

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

Простой загрузчик изображений

Простейший случай — загрузка в страницу одиночного изображения.Вот маленький апплет, выполняющий эту работу:

*&lt-applet code=»SimpleImageLoad» width=300 height=150&gt-

* &lt-param name=»img» value=»mupk.gif»&gt-

public class SimpleImageLoad extends Applet <

art = getImage(getDocumentBase(), getParameter(«img»))-

public void paint(Graphics g) <

g.drawImage(art, 0, 0, this)-

ImageObserver — это абстрактный интерфейс, используемый дляполучения сообщения о создании изображения, Метод imageUpdate из ImageObserver —это все, что вы должны реализовать в своем апплете для его использования. В товремя, как вы получаете информацию о загрузке, вы можете показывать любуюпонравившуюся вам мультипликацию, индикатор степени завершения загрузки илилюбую другую заставку. Для использования ImageObserver в своем подклассе Appletвы должны добавить в него строку implement Image O bserver, как показано в этомфрагменте программы:

public class MyApplet extends Applet implement ImageObserver<

Затем вам придется вставить в свой класс метод imageUpdate для интерфейсаImageObserver, как показано в следующем фрагменте :

public boolean imageUpdate(Image img, int status,

int x, int у int width, int height) <

System.out.println(«Still processing the image»)-

System.out.println(«Done processing the image»)-

Метод imageUpdate вызывается с изображением Image, котороенаходится в процессе изменения, целым параметром status, отражающим состояниеизменения, и с координатами прямоугольника (x, у, width, height), которыесоответствуют различным величинам в зависимости от информационных флагов,перечисленных ниже. ImageUpdate должен возвращать false по окончании загрузкиизображения и true — если изображение еще обрабатывается.

Целая переменная status поразрядно проверяется на наличиеодного или нескольких флагов. Возможные флаги и информация, которую они несут,перечислены ниже:

Ширина изображения доступна и может быть взята из аргументаwidth.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *