산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java 9 멀티해상도 이미지 API: 반응형 그래픽 단순화

Java 9에서는 여러 해상도 변형이 있는 이미지를 지원하는 새로운 멀티해상도 이미지 API가 도입되었습니다. 이 API는 서로 다른 해상도의 이미지 세트를 단일 멀티해상도 이미지로 사용할 수 있게 합니다. 멀티해상도 이미지의 주요 연산:

예제

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(
            "https://www.tutorialspoint.com/java9/images/logo.png",
            "https://www.tutorialspoint.com/java9/images/mini_logo.png",
            "https://www.tutorialspoint.com/java9/images/large_logo.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));
        
        Image variant2 = multiResolutionImage.getResolutionVariant(311, 89);
        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("\n대상[%d,%d] 이미지: [%d,%d]", 622, 178, variant3.getWidth(null), variant3.getHeight(null));
        
        Image variant4 = multiResolutionImage.getResolutionVariant(300, 300);
        System.out.printf("\n대상[%d,%d] 이미지: [%d,%d]", 300, 300, variant4.getWidth(null), variant4.getHeight(null));
    }
}

출력

총 이미지 수: 3
BufferedImage@7ce6a65d: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space =java.awt.color.ICC_ColorSpace@548ad73b transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width =311 height = 89 #numDataElements 4 dataOff[0] = 3
BufferedImage@4c762604: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space =java.awt.color.ICC_ColorSpace@548ad73b transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width =156 height = 45 #numDataElements 4 dataOff[0] = 3
BufferedImage@2641e737: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space =java.awt.color.ICC_ColorSpace@548ad73b transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width =622 height = 178 #numDataElements 4 dataOff[0] = 3
대상[156,45] 이미지: [311,89]
대상[311,89] 이미지: [311,89]
대상[622,178] 이미지: [622,178]
대상[300,300] 이미지: [622,178]

java

  1. Java 연산자 마스터하기: 종류, 문법, 실전 예제
  2. Java 주석: 종류, 사용법, 모범 사례
  3. Java 향상된 for 루프(for-each) 완벽 가이드: 문법, 예제, 비교
  4. Java String 마스터하기: 생성, 메서드, 모범 사례
  5. Java 인터페이스 마스터: 개념, 구현, 모범 사례
  6. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  7. Java Try-with-Resources 마스터: 자동 리소스 관리 완전 해설
  8. Java 애너테이션 완전 해설: 종류, 배치 위치, 실전 예제
  9. Java Assertion(어설션) 실전 가이드: 버그 조기 발견과 코드 신뢰성 확보
  10. Java 9 (JDK 9) – 주요 기능 및 이점