getImage
Возвращает изображение,которое получает пиксельные данные из указанного файла,формат которого может быть GIF,JPEG или PNG.Базовый инструментарий пытается разрешить несколько запросов с одним и тем же именем файла в одно и то же возвращаемое изображение.
Поскольку механизм, необходимый для облегчения этого совместного использования объектов Image , может продолжать удерживать изображения, которые больше не используются, в течение неопределенного периода времени, разработчикам рекомендуется реализовать собственное кэширование изображений, используя вариант createImage везде, где это возможно. Если данные изображения, содержащиеся в указанном файле, изменяются, объект Image , возвращаемый этим методом, может по-прежнему содержать устаревшую информацию, которая была загружена из файла после предыдущего вызова. Ранее загруженные данные изображения можно удалить вручную, вызвав метод flush для возвращенного Image .
Этот метод сначала проверяет, установлен ли менеджер безопасности. Если это так, метод вызывает метод checkRead диспетчера безопасности с указанным файлом, чтобы убедиться, что доступ к изображению разрешен.
getImage
public abstract Image getImage(URL url)
Возвращает изображение,которое получает пиксельные данные из указанного URL.Пиксельные данные,на которые ссылается указанный URL,должны быть в одном из следующих форматов:GIF,JPEG или PNG.Базовый инструментарий пытается разрешить несколько запросов с одним и тем же URL на одно и то же возвращаемое изображение.
Поскольку механизм, необходимый для облегчения этого совместного использования объектов Image , может продолжать удерживать изображения, которые больше не используются, в течение неопределенного периода времени, разработчикам рекомендуется реализовать собственное кэширование изображений, используя вариант createImage везде, где это возможно. Если данные изображения, хранящиеся по указанному URL-адресу, изменяются, объект Image , возвращаемый этим методом, может по-прежнему содержать устаревшую информацию, которая была извлечена из URL-адреса после предыдущего вызова. Ранее загруженные данные изображения можно удалить вручную, вызвав метод flush для возвращенного Image .
Этот метод сначала проверяет, установлен ли менеджер безопасности. Если это так, метод вызывает метод checkPermission диспетчера безопасности с соответствующим разрешением, чтобы убедиться, что доступ к изображению разрешен. Если для подключения к указанному URL-адресу требуется либо URLPermission , либо SocketPermission , тогда URLPermission используется для проверок безопасности.
createImage
public abstract Image createImage(String filename)
Возвращает изображение,которое получает пиксельные данные из указанного файла.Возвращаемое изображение представляет собой новый объект,который не будет передан другому вызывающему этот метод или его вариант getImage.
Этот метод сначала проверяет, установлен ли менеджер безопасности. Если это так, метод вызывает метод checkRead диспетчера безопасности с указанным файлом, чтобы убедиться, что создание образа разрешено.
createImage
public abstract Image createImage(URL url)
Возвращает изображение,которое получает пиксельные данные из указанного URL.Возвращаемое изображение представляет собой новый объект,который не будет передан другому вызывающему этот метод или его вариант getImage.
Этот метод сначала проверяет, установлен ли менеджер безопасности. Если это так, метод вызывает метод checkPermission диспетчера безопасности с соответствующим разрешением, чтобы убедиться, что создание образа разрешено. Если для подключения к указанному URL-адресу требуется либо URLPermission , либо SocketPermission , тогда URLPermission используется для проверок безопасности.
prepareImage
public abstract boolean prepareImage(Image image, int width, int height, ImageObserver observer)
Если значения аргументов ширины и высоты равны -1 , этот метод подготавливает изображение для рендеринга на экране по умолчанию; в противном случае этот метод подготавливает изображение для рендеринга на экране по умолчанию с указанной шириной и высотой.
Данные изображения загружаются асинхронно в другом потоке,и создается соответствующее масштабированное экранное представление изображения.
Этот метод вызывается методами компонента prepareImage .
Информацию о флагах, возвращаемых этим методом, можно найти в определении интерфейса ImageObserver .
checkImage
public abstract int checkImage(Image image, int width, int height, ImageObserver observer)
Если значения аргументов ширины и высоты равны -1 , этот метод возвращает состояние построения экранного представления указанного изображения в этом наборе инструментов. В противном случае этот метод возвращает состояние построения масштабированного представления изображения с указанной шириной и высотой.
Этот метод не вызывает загрузку изображения. Приложение должно вызвать prepareImage для принудительной загрузки изображения.
Этот метод вызывается методами компонента checkImage .
Информацию о флагах, возвращаемых этим методом, можно найти в определении интерфейса ImageObserver .
createImage
public abstract Image createImage(ImageProducer producer)
createImage
public Image createImage(byte[] imagedata)
Данные должны быть в каком-либо формате изображения,например,GIF или JPEG,который поддерживается данным инструментарием.
Parameters: imagedata — массив байтов, представляющий данные изображения в поддерживаемом формате изображения. Returns: an image. Since: 1.1
createImage
public abstract Image createImage(byte[] imagedata, int imageoffset, int imagelength)
Создает изображение,которое декодирует изображение,хранящееся в указанном массиве байтов,с указанным смещением и длиной.Данные должны быть в каком-либо формате изображения,например GIF или JPEG,который поддерживается данным инструментарием.
Parameters: imagedata — массив байтов, представляющий данные изображения в поддерживаемом формате изображения. imageoffset — смещение начала данных в массиве. imagelength — длина данных в массиве. Returns: an image. Since: 1.1
getPrintJob
public abstract PrintJob getPrintJob(Frame frame, String jobtitle, Properties props)
Получает объект PrintJob , который является результатом запуска операции печати на платформе инструментария.
Каждая фактическая реализация этого метода должна сначала проверять, установлен ли менеджер безопасности. Если есть, метод должен вызвать метод диспетчера безопасности checkPrintJobAccess , чтобы убедиться, что инициирование операции печати разрешено. Если используется реализация по умолчанию checkPrintJobAccess (то есть этот метод не отменяется), то это приводит к вызову метода checkPermission диспетчера безопасности с разрешением RuntimePermission(«queuePrintJob») .
Read an Image from File or URL or Class Path
In the following tutorial we demonstrate how to read an image from a File , URL , class-path or InputStream .
How to Read an Image in Java
This example shows how to read an image in java.
- File – specifies a local folder on your computer/server.
- URL – specifies a resource from the internet.
- class-path – specifies a class path resource located in src/main/resources .
- InputStream – specifies a InputStream .
package com.memorynotfound.image; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; public class ReadImageExample < public static void main(String. args) throws IOException < // read image from folder File folderInput = new File("/tmp/duke.png"); BufferedImage folderImage = ImageIO.read(folderInput); // read image from url URL urlInput = new URL("https://memorynotfound.com/wp-content/uploads/java-duke.png"); BufferedImage urlImage = ImageIO.read(urlInput); // read image from class-path File classPathInput = new File(ReadImageExample.class.getResource("duke.png").getFile()); BufferedImage classpathImage = ImageIO.read(classPathInput); // read image from inputstream InputStream isInput = new FileInputStream("/tmp/duke.png"); BufferedImage inputStreamImage = ImageIO.read(isInput); >>
References
Getting Image from a URL
This example shows how to get an image from the given URL.
Description of program:
In the example given below, we are creating the no argument constructor, then calling the super class constructor and then setting the size of the window. Now we are getting content pane of the frame class, then setting the layout manager as the BorderLayout. But It is not necessary to set the layout manager in case of BorderLayout as it is the default layout manager for the frame’s content pane. Now we are retrieving the Image from the specified location then creating an object of the ImagePanel class that displays the image and exit button. Now we register the window listener that closes the application whenever window gets closed. We register the action listener for listening the events done by the user by using the button. Then paints the background and draws the image with its default size.
Here is the code of this program:
public class GettingImageFromURL extends JFrame implements ActionListener
private JButton exitButton = null;
private URL url = null;
public GettingImageFromURL() <
super(«Getting an Image from a specified URL»);
this.setSize(170, 130);
Container contentPane = this.getContentPane();
contentPane.setLayout(new BorderLayout());
try url = new URL(«http://www.roseindia.net/javacodeexamples/index.shtml/Gettin1.gif»);
>
catch (MalformedURLException e) e.printStackTrace();
>
Image img = Toolkit.getDefaultToolkit().getDefaultToolkit().createImage(url);
exitButton = new JButton(«Exit»);
exitButton.addActionListener(this);
ImagePanel imagePanel = new ImagePanel(img);
contentPane.add(imagePanel, BorderLayout.CENTER);
contentPane.add(exitButton, BorderLayout.SOUTH);
this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0);
>
>);
>
public void actionPerformed(ActionEvent actionevent)
String action = actionevent.getActionCommand();
if (action.equals(«Exit»)) dispose();
System.out.println(«Exiting.»);
System.exit(0);
>
else System.out.println(action);
>
>
public static void main(String[] args) GettingImageFromURL mainFrame = new GettingImageFromURL();
mainFrame.setVisible(true);
>
>
class ImagePanel extends JPanel
Image img;
public ImagePanel(Image img) this.img = img;
>
public void paintComponent(Graphics g)
Here is the output of the above program:
C:\Examples\URL>java GettingImageFromURL |
Tutorials
- Client Socket Information
- EchoClientSocket
- EncoderTest
- GetHTTPHeader
- URLInformation
- GetKeepAlive
- ReadIPAddress
- How to retrieve URL information
- Datagram in network environment
- Networking in Java
- Print the URL of a URLConnection
- Computer Networking
- Open a URLConnection to specific website address
- Overview of Networking through JAVA
- URL in term of Java Network Programming
- Client-Server Architecture
- Socket and ports
- Server Sockets
- Find Your Host Name/IP Address
- Getting list of Local Interfaces on a machine
- Find Your Host Name
- Getting the Local port
- Find the Host name in reverse of given IP address
- Convert URI to URL
- To retrieve the IP address from Host Name, vice-versac
- Construct a DatagramPacket to receive data
- Construct a DatagramSocket on an unspecified port
- Return the MIME Header
- Getting Image from a URL
- Local Port Scanner
- Low port Scanner
- URLReadFile
- URL Connection Reader
- RMI Client And RMI Server Implementation
- Overview of Networking through JAVA
Java Utililty Methods BufferedImage from URL
Method
HttpURLConnection connection = null; try < connection = (HttpURLConnection) new URL(url).openConnection(); connection.connect(); BufferedImage image = ImageIO.read(connection.getInputStream()); connection.disconnect(); return image; > catch (IOException e) < .
try < InputStream in = new BufferedInputStream(url.openStream()); ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int n = 0; while (-1 != (n = in.read(buf))) < out.write(buf, 0, n); out.close(); in.close(); byte[] byteArray = out.toByteArray(); ByteArrayInputStream inByte = new ByteArrayInputStream(byteArray); BufferedImage read = ImageIO.read(inByte); return read; > catch (IOException ioe) < ioe.printStackTrace(); return null;
try < String[] splittedUrl = urlString.split("/"); String fileName = splittedUrl[splittedUrl.length - 1]; final URL url = new URL(urlString); final HttpURLConnection connection = (HttpURLConnection) url.openConnection(); String mimeType = connection.getContentType(); final BufferedImage img = ImageIO.read(connection.getInputStream()); if (img != null) < .
return ImageIO.read(new URL(url));
ByteArrayOutputStream baos = null; try < URL u = new URL(strUrl); BufferedImage image = ImageIO.read(u); baos = new ByteArrayOutputStream(); ImageIO.write(image, "jpg", baos); baos.flush(); return baos.toByteArray(); .
try < URL url = new URL(urlstring); return Toolkit.getDefaultToolkit().createImage(url); > catch (MalformedURLException e) < e.printStackTrace(); return null;
BufferedImage image; try < image = ImageIO.read(imageUrl); > catch (IOException e) < throw new RuntimeException("Failed to read image from URL: " + imageUrl, e); return image;
File gsPath = new File("/usr/bin/gs"); if (!gsPath.exists()) < gsPath = new File("/sw/bin/gs"); Process process; Runtime runtime; java.io.InputStream input; String command[] = < "/bin/sh", "-c", .