Ändern der Größe eines Bildes in swing
Habe ich code-snippet, das ich benutze für den Zweck der Veränderung der Größe eines Bildes zu einem Vorhang Größe (ich will die Auflösung ändern, um so etwas wie 200 dpi). Im Grunde der Grund, warum ich es brauche ist, weil ich möchte, um das Bild anzuzeigen, das den Benutzer ausgewählt haben (ziemlich groß) und dann, wenn der Nutzer dem zustimmt ich will zeigen das gleiche Bild in einem anderen Ort, aber mit einer kleineren Auflösung. Leider, wenn ich ihm ein großes Bild nichts auf dem Bildschirm angezeigt wird. Auch, wenn ich
imageLabel.setIcon(newIcon);
zu
imageLabel.setIcon(icon);
Ich bekomme das Bild angezeigt aber nicht in der richtigen Auflösung, die ist, wie ich weiß, dass ich ein problem habe, in diesem snipper code und nicht irgendwo anders.
Image img = icon.getImage();
BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics g = bi.createGraphics();
boolean myBool = g.drawImage(img, 0, 0, 100, 100, null);
System.out.println(myBool);
ImageIcon newIcon = new ImageIcon(bi);
imageLabel.setIcon(newIcon);
submitText.setText(currentImagePath);
imageThirdPanel.add(imageLabel);
ImageIcon newIcon = new ImageIcon(bi);
ist das AWT, nicht Swing. 3) Es ist 'Swing', nicht 'swing' 4), um besser helfen früher, nach einem SSCCE.Okay. Ich bin nicht Anzeige der ganze code, weil es zu lange. Auch bin ich mir nicht sicher, warum Sie sagen, es ist Schwingen und nicht schwingen (das ist, was ich von der "auto-vervollständigen" wenn ich in den tag - ich sehe nicht, wie das ist, meine Schuld). Ich denke, es ist SSCCE. Wie ich sagte, der rest des Codes funktioniert ich bin sicher, es gibt ein problem in diesem code-snippet. Wahrscheinlich, als ich das Bild gezeichnet werden soll, aber ich bin mir nicht sicher, was.
"ich denke, es ist SSCCE." Du denkst falsch. Bitte Lesen Sie das Dokument.
Warum nutzen Sie nicht
Image.getScaledInstance()
?InformationsquelleAutor Paul Kar. | 2011-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist meine Lösung:
InformationsquelleAutor hungneox
Die Sie nicht wirklich haben, um sich über die details der Skalierung der Bilder. Die Image-Klasse hat bereits eine Methode
getScaledInstance(int width, int height, int hints)
für diesen Zweck konzipiert.Java-Dokumentation sagt:
Und Sie können es verwenden, wie diese:
Überprüfen diese für ein komplettes Beispiel.
-1
als argument für die Maßnahme, sollten Folgen die anderen. Zum Beispiel, wenn Sie wollen, zu skalieren, basierend auf Breite, nur Sie nennen würde, so etwas wieanImage.getScaledInstance(150, -1, java.awt.Image.SCALE_FAST)
InformationsquelleAutor GETah
Versuchen, diesen CODE zu verändern Bild :
InformationsquelleAutor gtiwari333
Weiteres Beispiel ist hier gegeben :
2D-Graphics/LoadImageandscaleit.htm">http://www.java2s.com/Tutorial/Java/0261_2D-Graphics/LoadImageandscaleit.htm
http://www.java2s.com/Code/JavaAPI/java.awt/ImagegetScaledInstanceintwidthintheightinthints.htm
InformationsquelleAutor gtiwari333