English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Списки (List)

Java Очереди (Queue)

Java Словари (Map)

Java Наборы (Set)

Java Ввод/вывод (I/O)

Java Reader/Writer

Другие темы Java

API многорешенчных изображений Java 9

Java новые возможности 9

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

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

  • Image getResolutionVariant(double destImageWidth, double destImageHeight) − Получить изображение с заданным разрешением - логическое изображение с известными размерами и единицей измерения DPI, являющееся оптимальным вариантом.

  • List<Image> getResolutionVariants() − Возвратить список читаемых вариантов разрешений изображений.

import java.io.IOException;
import java.net.URL;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import java.awt.Image;
import java.awt.image.MultiResolutionImage;
import java.awt.image.BaseMultiResolutionImage;
 
import javax.imageio.ImageIO;
 
public class Tester {
   public static void main(String[] args) throws IOException, MalformedURLException {
 
      List<String> imgUrls = List.of("http://ru.oldtoolbag.com/wp-content/themes/w3codebox/assets/img/[email protected]",
         "http://ru.oldtoolbag.com/wp-content/themes/w3codebox/assets/img/w3codebox-logo.png",
         "http://ru.oldtoolbag.com/wp-content/themes/w3codebox/assets/images/qrcode.png"
 
      List<Image> images = new ArrayList<Image>();
 
      for (String url : imgUrls) {
         images.add(ImageIO.read(new URL(url)));
      {}
 
      // Чтение всех изображений
      MultiResolutionImage multiResolutionImage = 
         new BaseMultiResolutionImage(images.toArray(new Image[0]));
 
      // Получение всех резолюций изображения
      List<Image> variants = multiResolutionImage.getResolutionVariants();
 
      System.out.println("Общее количество изображений: " + variants.size());
 
      for (Image img : variants) {
         System.out.println(img);
      {}
 
      // Получение соответствующей резолюции изображения для различных размеров
      Image variant1 = multiResolutionImage.getResolutionVariant(156, 45);
      System.out.printf("\nИзображение для назначения[%d,%d]: [%d,%d],", 
         156, 45, variant1.getWidth(null), variant1.getHeight(null));
 
      
      System.out.printf("\nИзображение для назначения[%d,%d]: [%d,%d],", 311, 89,), 
         variant2.getWidth(null), variant2.getHeight(null));
 
      Image variant3 = multiResolutionImage.getResolutionVariant(622, 178);
      System.out.printf("\nImage для назначения[%d,%d]: [%d,%d],", 622, 178, 
         variant3.getWidth(null), variant3.getHeight(null));
 
      Image variant4 = multiResolutionImage.getResolutionVariant(300, 300);
      System.out.printf("\nImage для назначения[%d,%d]: [%d,%d],", 300, 300, 
         variant4.getWidth(null), variant4.getHeight(null));
   {}  
{}

Java новые возможности 9