Java基础

Java简介
Java 简介
Java 开发环境配置
Java 注释
我的第一个Java程序
Java基础语法
Java 基础语法
Java 基本数据类型
Java 变量类型
Java 权限修饰符与非权限修饰符
Java 运算符
Java 循环结构
Java 条件语句
Java switch case 语句
Java String类
Java 数组
Java 方法
Java面向对象
Java 对象和类
Java 继承
Java重写与重载
Java 多态
Java 抽象类
Java 封装
Java 接口
Java 包(package)
Java面向对象进阶
Java 泛型
Java容器
Java Enumeration接口
Java Bitset类
Java Vector 类
Java Stack 类
Java Dictionary 类
Java Hashtable 类
Java 数据结构
Java 集合框架
Java异常
Java 异常处理
Java IO
Java Properties 类
Java字节数组输出流类
Java数据输入流类
Java字节数组输出流
Java数据输入流类
Java File类
Java FileReader类
Java FileWriter类
Java 流(Stream)、文件(File)和IO
Java Scanner 类
Java并发
Java 多线程编程
Java高级技术
Java8 最新技术
Java 8 Lambda 表达式
Java 8 方法引用
Java 8 函数式接口
Java 8 默认方法
Java 8 Stream
Java 8 Optional 类
Java 8 Nashorn JavaScript
Java 8 日期时间 API
Java8 Base64
Java 8 新特性
Java9 最新技术
Java 9 新特性
Java 9 模块系统
Java 9 REPL (JShell)
Java 9 改进 Javadoc
Java 9 多版本兼容 jar 包
Java 9 集合工厂方法
Java 9 私有接口方法
Java 9 改进的进程 API
Java 9 改进的 Stream API
Java 9 改进的 try-with-resources
Java 9 改进的 @Deprecated 注解
Java 9 钻石操作符(Diamond Operator)
Java 9 改进的 Optional 类
Java 9 多分辨率图像 API
Java 9 改进的 CompletableFuture API
Java常用类
Java Number, Math 类
Java Character 类
Java StringBuffer 和 StringBuilder 类
Java 日期时间
Java 正则表达式
Java 序列化

Java 9 多分辨率图像 API

Java 9 多分辨率图像 API

Java 9 定义多分辨率图像 API,开发者可以很容易的操作和展示不同分辨率的图像了。

以下是多分辨率图像的主要操作方法:

  • 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://www.javaidea.cn/wp-content/themes/javaidea/assets/img/javaidea-logo@2x.png",
         "http://www.javaidea.cn/wp-content/themes/javaidea/assets/img/javaidea-logo.png",
         "http://www.javaidea.cn/wp-content/themes/javaidea/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("Total number of images: " + variants.size());
 
      for (Image img : variants) {
         System.out.println(img);
      }
 
      // 根据不同尺寸获取对应的图像分辨率
      Image variant1 = multiResolutionImage.getResolutionVariant(156, 45);
      System.out.printf("\nImage for destination[%d,%d]: [%d,%d]", 
         156, 45, variant1.getWidth(null), variant1.getHeight(null));
 
      Image variant2 = multiResolutionImage.getResolutionVariant(311, 89);
      System.out.printf("\nImage for destination[%d,%d]: [%d,%d]", 311, 89, 
         variant2.getWidth(null), variant2.getHeight(null));
 
      Image variant3 = multiResolutionImage.getResolutionVariant(622, 178);
      System.out.printf("\nImage for destination[%d,%d]: [%d,%d]", 622, 178, 
         variant3.getWidth(null), variant3.getHeight(null));
 
      Image variant4 = multiResolutionImage.getResolutionVariant(300, 300);
      System.out.printf("\nImage for destination[%d,%d]: [%d,%d]", 300, 300, 
         variant4.getWidth(null), variant4.getHeight(null));
   }  
}