Как вставить картинку в java
Работать с изображениями в Java можно через встроенные библиотеки awt и swing . Кроме того, можно использовать мощные сторонние библиотеки, например ImageJ . Ниже приведены примеры обоих вариантов :
Библиотеку ImageJ надо подключить в файле build.gradle
dependencies implementation 'net.imagej:ij:1.51h' >
import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; public class App public static void main(String[] args) throws IOException String fileName = "rose.bmp"; // считаем изображение из файла с помощью встроенной библиотеки BufferedImage myPicture = ImageIO.read(new File(fileName)); // выведем изображение на экран JLabel myLabel = new JLabel(new ImageIcon(myPicture)); JPanel myPanel = new JPanel(); myPanel.add(myLabel); JFrame myFrame = new JFrame(); myFrame.setSize(new Dimension(myPicture.getWidth(), myPicture.getHeight())); myFrame.add(myPanel); myFrame.setVisible(true); // воспользуемся сторонней библиотекой ImagePlus myImage = IJ.openImage(fileName); myImage.show(); > >
Вставить картинку
Можо ли в DIV background вместо цвета вставить картинку?
Mojno li v DIV background vmesto tzveta vstavit’ kartinku,i esli mojno ,to kak ?
HTML — Надо: вставить картинку в картинку, в эту картинку, ссылку в картинку
Вот схема моего сайта. http://s020.***********/i716/1404/8c/254516feacb3.jpg У меня пока что на.

Как в html вставить 2-картинку на 1-картинку.
Если 1-картинка не должна быть фоновая. пожалуйста поподробней.
Вставить картинку
Здравствуйте. Подскажите плиз как программно вставить картинку в определенный координаты а не в.
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
Скопировал ваш код, создал картинку, запустил, картинка показалась.
Может вам там пишет сообщение о том что файл с таким именем не найден? У вас точно изображение лежить в папке с кодом?
Загрузка и загрузка изображений
В этой главе мы увидим, как вы можете загрузить изображение из Интернета, выполнить некоторые методы обработки изображения, а затем снова загрузить обработанное изображение на сервер.
Загрузка изображения
Чтобы загрузить изображение с веб-сайта, мы используем класс Java с именем URL , который можно найти в пакете java.net . Его синтаксис приведен ниже –
String website = "http://tutorialspoint.com"; URL url = new URL(website);
Помимо описанного выше метода, в URL-адресе класса доступны и другие методы, которые кратко описаны ниже.
public String getPath ()
Возвращает путь URL.
public String getQuery ()
Возвращает часть запроса URL.
public String getAuthority ()
Возвращает авторитет URL.
public int getPort ()
Возвращает порт URL.
public int getDefaultPort ()
Возвращает порт по умолчанию для протокола URL.
public String getProtocol ()
Возвращает протокол URL.
public String getHost ()
Возвращает хост URL.
public String getPath ()
Возвращает путь URL.
public String getQuery ()
Возвращает часть запроса URL.
public String getAuthority ()
Возвращает авторитет URL.
public int getPort ()
Возвращает порт URL.
public int getDefaultPort ()
Возвращает порт по умолчанию для протокола URL.
public String getProtocol ()
Возвращает протокол URL.
public String getHost ()
Возвращает хост URL.
пример
В следующем примере демонстрируется использование класса URL Java для загрузки изображения из Интернета.
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; public class Download public static void main(String[] args) throws Exception try String fileName = "digital_image_processing.jpg"; String website = "http://tutorialspoint.com/java_dip/images/"+fileName; System.out.println("Downloading File From: " + website); URL url = new URL(website); InputStream inputStream = url.openStream(); OutputStream outputStream = new FileOutputStream(fileName); byte[] buffer = new byte[2048]; int length = 0; while ((length = inputStream.read(buffer)) != -1) System.out.println("Buffer Read of length: " + length); outputStream.write(buffer, 0, length); > inputStream.close(); outputStream.close(); > catch(Exception e) System.out.println("Exception: " + e.getMessage()); > > >
Выход
Когда вы выполните приведенное выше, вы увидите следующий вывод.

Было бы загрузить следующее изображение с сервера.

Загрузка изображения
Давайте посмотрим, как загрузить изображение на веб-сервер. Мы преобразуем BufferedImage в байтовый массив, чтобы отправить его на сервер.
Мы используем Java-класс ByteArrayOutputStream , который можно найти в пакете java.io. Его синтаксис приведен ниже –
ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(image, "jpg", baos);
Чтобы преобразовать изображение в байтовый массив, мы используем метод toByteArray () класса ByteArrayOutputStream . Его синтаксис приведен ниже –
byte[] bytes = baos.toByteArray();
Помимо описанного выше метода, в классе ByteArrayOutputStream доступны и другие методы, которые кратко описаны ниже.
public void reset ()
Этот метод сбрасывает число действительных байтов выходного потока массива байтов до нуля, так что весь накопленный вывод в потоке отбрасывается.
public byte [] toByteArray ()
Этот метод создает вновь выделенный байтовый массив. Его размер будет текущим размером выходного потока, и содержимое буфера будет скопировано в него. Он возвращает текущее содержимое выходного потока в виде байтового массива.
public String toString ()
Преобразует содержимое буфера в строку. Перевод будет выполнен в соответствии с кодировкой символов по умолчанию. Возвращает строку, переведенную из содержимого буфера.
публичный void write (int w)
Записывает указанный массив в выходной поток.
public void write (byte [] b, int of, int len)
Он записывает len количество байтов, начиная со смещения в поток.
public void writeTo (OutputStream outSt)
Он записывает все содержимое этого потока в указанный аргумент потока.
public void reset ()
Этот метод сбрасывает число действительных байтов выходного потока массива байтов до нуля, так что весь накопленный вывод в потоке отбрасывается.
public byte [] toByteArray ()
Этот метод создает вновь выделенный байтовый массив. Его размер будет текущим размером выходного потока, и содержимое буфера будет скопировано в него. Он возвращает текущее содержимое выходного потока в виде байтового массива.
public String toString ()
Преобразует содержимое буфера в строку. Перевод будет выполнен в соответствии с кодировкой символов по умолчанию. Возвращает строку, переведенную из содержимого буфера.
публичный void write (int w)
Записывает указанный массив в выходной поток.
public void write (byte [] b, int of, int len)
Он записывает len количество байтов, начиная со смещения в поток.
public void writeTo (OutputStream outSt)
Он записывает все содержимое этого потока в указанный аргумент потока.
пример
В следующем примере демонстрируется ByteArrayOutputStream для загрузки изображения на сервер –
Код клиента
import javax.swing.*; import java.net.*; import java.awt.image.*; import javax.imageio.*; import java.io.*; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class Client public static void main(String args[]) throws Exception Socket soc; BufferedImage img = null; soc=new Socket("localhost",4000); System.out.println("Client is running. "); try System.out.println("Reading image from disk. "); img = ImageIO.read(new File("digital_image_processing.jpg")); ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(img, "jpg", baos); baos.flush(); byte[] bytes = baos.toByteArray(); baos.close(); System.out.println("Sending image to server. "); OutputStream out = soc.getOutputStream(); DataOutputStream dos = new DataOutputStream(out); dos.writeInt(bytes.length); dos.write(bytes, 0, bytes.length); System.out.println("Image sent to server. "); dos.close(); out.close(); > catch (Exception e) System.out.println("Exception: " + e.getMessage()); soc.close(); > soc.close(); > >
Код сервера
import java.net.*; import java.io.*; import java.awt.image.*; import javax.imageio.*; import javax.swing.*; class Server public static void main(String args[]) throws Exception ServerSocket server=null; Socket socket; server = new ServerSocket(4000); System.out.println("Server Waiting for image"); socket = server.accept(); System.out.println("Client connected."); InputStream in = socket.getInputStream(); DataInputStream dis = new DataInputStream(in); int len = dis.readInt(); System.out.println("Image Size: " + len/1024 + "KB"); byte[] data = new byte[len]; dis.readFully(data); dis.close(); in.close(); InputStream ian = new ByteArrayInputStream(data); BufferedImage bImage = ImageIO.read(ian); JFrame f = new JFrame("Server"); ImageIcon icon = new ImageIcon(bImage); JLabel l = new JLabel(); l.setIcon(icon); f.add(l); f.pack(); f.setVisible(true); > >
Выход
Вывод на стороне клиента
Когда вы выполняете код клиента, на стороне клиента появляется следующий вывод:

Вывод на стороне сервера
Когда вы выполняете код сервера, на стороне сервера появляется следующий выход –

После получения изображения сервер отображает изображение, как показано ниже –
Как добавить изображение в jFrame?
Я нарисовал некий интерфейс программы в конструкторе форм NetBeans. А если конкретнее, то окно, похожее на некоторые окна «About». И хочу в это окно «прикрутить» картинку. Пробовал с помощью jLabel, но тот не масштабирует изображение. А мне надо, чтобы при изменении размеров окна, изменялись и размеры картинки(не фон окна, а именно отдельный объект, на подобие jLabel, jTextArea, и другие Swing объекты).
В NetBeans, да и в Java, я начинающий, поэтому заранее извините, если буду задавать глупые вопросы))
Кстати, я тут читал статейку Добавление картинки на JFrame
Создал подкласс jPanel, как написано в статье, но так и не понял как его объявить в моей форме. Так как NetNeans не даёт мне вставить «посторонний» объект. Может быть как-то надо настроить сам NetBeans?
- Вопрос задан более трёх лет назад
- 2812 просмотров
