Heim > Java > javaLernprogramm > Hauptteil

Wie skaliert man ein gepuffertes Bild in Java richtig: Resampling vs. Zuschneiden?

Linda Hamilton
Freigeben: 2024-11-21 07:45:12
Original
462 Leute haben es durchsucht

How to Properly Scale a BufferedImage in Java: Resampling vs. Cropping?

Skalieren eines BufferedImage: Eintauchen in Resampling, nicht in Zuschneiden

Ihr Versuch, ein BufferedImage mithilfe der Graphics2D-Klasse zu skalieren, führt möglicherweise nicht zu den gewünschten Ergebnissen aufgrund der durch die Methode auferlegten Einschränkungen. Die Scale()-Methode transformiert einfach den aktuellen Grafikkontext, ohne die zugrunde liegenden Bilddaten zu ändern.

AffineTransformOp: Die bevorzugte Lösung für Resampling

Für Resampling sorgt die Klasse AffineTransformOp größere Flexibilität durch die Möglichkeit, den Interpolationstyp festzulegen. Die Interpolation bestimmt, wie Zwischenpixelwerte berechnet werden, wenn das Bild skaliert wird. Hier ist ein Beispiel für die Verwendung von AffineTransformOp zum Skalieren eines Bildes:

BufferedImage before = getBufferedImage(encoded);
int w = before.getWidth();
int h = before.getHeight();
BufferedImage after = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
AffineTransform at = new AffineTransform();
at.scale(2.0, 2.0);
AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
after = scaleOp.filter(before, after);
Nach dem Login kopieren

In diesem Beispiel:

  • AffineTransform wird zum Definieren der Skalierungstransformation verwendet.
  • AffineTransformOp wird verwendet mit dem Interpolationstyp TYPE_BILINEAR, der eine reibungslose und qualitativ hochwertige Verarbeitung ermöglicht Ergebnisse.
  • filter() wendet die Transformation an und tastet das Bild erneut in das nachgepufferte Bild ab.

Wichtige Punkte

  • Verwendung AffineTransformOp zum Resampling von Bildern, nicht zum Zuschneiden.
  • Wählen Sie den entsprechenden Interpolationstyp für optimale Ergebnisse, z. B. TYPE_BILINEAR.
  • Weitere Beispiele und Einblicke in die Bildskalierung finden Sie in den entsprechenden Ressourcen.

Das obige ist der detaillierte Inhalt vonWie skaliert man ein gepuffertes Bild in Java richtig: Resampling vs. Zuschneiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage