Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Java

Java 9 API Image multi-résolution : Graphiques responsives simplifiés

Java 9 introduit MultiResolutionImage et BaseMultiResolutionImage pour gérer un ensemble d'images à résolutions variées comme une seule image logique.

Opérations principales

Exemple complet

import java.io.IOException;
import java.net.URL;
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 {
        List<String> imgUrls = List.of(
            "https://example.com/logo.png",
            "https://example.com/mini_logo.png",
            "https://example.com/large_logo.png"
        );

        List<Image> images = new ArrayList<>();
        for (String url : imgUrls) {
            images.add(ImageIO.read(new URL(url)));
        }

        MultiResolutionImage multiRes = new BaseMultiResolutionImage(
            images.toArray(new Image[0])
        );

        // Lister toutes les variantes
        List<Image> variants = multiRes.getResolutionVariants();
        System.out.println("Nombre total d'images: " + variants.size());
        for (Image img : variants) {
            System.out.println(img);
        }

        // Obtenir la meilleure variante pour chaque taille cible
        Image v1 = multiRes.getResolutionVariant(156, 45);
        System.out.printf("Image pour [%d,%d]: [%d,%d]%n", 156, 45, v1.getWidth(null), v1.getHeight(null));

        Image v2 = multiRes.getResolutionVariant(311, 89);
        System.out.printf("Image pour [%d,%d]: [%d,%d]%n", 311, 89, v2.getWidth(null), v2.getHeight(null));

        Image v3 = multiRes.getResolutionVariant(622, 178);
        System.out.printf("Image pour [%d,%d]: [%d,%d]%n", 622, 178, v3.getWidth(null), v3.getHeight(null));

        Image v4 = multiRes.getResolutionVariant(300, 300);
        System.out.printf("Image pour [%d,%d]: [%d,%d]%n", 300, 300, v4.getWidth(null), v4.getHeight(null));
    }
}

Sortie typique

Nombre total d'images: 3
BufferedImage@...: width=311 height=89 ...
BufferedImage@...: width=156 height=45 ...
BufferedImage@...: width=622 height=178 ...

Image pour [156,45]: [311,89]
Image pour [311,89]: [311,89]
Image pour [622,178]: [622,178]
Image pour [300,300]: [622,178]

L'API choisit automatiquement la meilleure correspondance (la plus petite image ≥ taille demandée). Idéal pour interfaces responsives et HiDPI.

Java

  1. Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
  2. Commentaires Java : Types, utilisation et bonnes pratiques
  3. Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
  4. Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
  5. Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
  6. Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
  7. Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
  8. Annotations Java expliquées : types, placement et exemples pratiques
  9. Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code