Heim >Java >javaLernprogramm >Wie kann ich ein BufferedImage in Java richtig skalieren?

Wie kann ich ein BufferedImage in Java richtig skalieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-20 17:02:16397Durchsuche

How Can I Properly Scale a BufferedImage in Java?

Skalieren eines gepufferten Bildes: Eine umfassende Anleitung

Problemstellung

Ein Versuch der Skalierung Beim Erstellen eines BufferedImage mithilfe der Java-API stieß ein Entwickler mit dem folgenden Code auf ein erfolgloses Ergebnis:

BufferedImage image = MatrixToImageWriter.getBufferedImage(encoded);
Graphics2D grph = image.createGraphics();
grph.scale(2.0, 2.0);
grph.dispose();

Lösung

Während das Konzept der Skalierung eines BufferedImage mithilfe von Graphics2D. Obwohl die Funktion „scale()“ unkompliziert erscheint, ist es wichtig zu beachten, dass dieser Vorgang keine Auswirkungen auf die zugrunde liegenden Bilddaten hat. Um eine echte Skalierung zu erreichen, ist es notwendig, die Klasse AffineTransformOp zu verwenden, die erweiterte Flexibilität und Interpolationsoptionen bietet.

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);

Weitere Überlegungen

Der vorgestellte Codeausschnitt veranschaulicht dies Resampling, eine Technik, die ein neues Bild mit der gewünschten Größe erstellt und dabei das ursprüngliche Seitenverhältnis des Originalbilds beibehält. Im Gegensatz dazu wird das Zuschneiden, das sowohl die Größe als auch das Seitenverhältnis verändert, in einem separaten Thread behandelt. Darüber hinaus stehen verschiedene Beispiele verwandter Konzepte zur weiteren Erkundung zur Verfügung.

Das obige ist der detaillierte Inhalt vonWie kann ich ein BufferedImage in Java richtig skalieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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