Hi,
ich habe ein JPanel auf das ich ein Bild zeichne. Das JPanel kann ich durch Ziehen mit der Maus vergrößeren bzw. verkleinern. Das Bild passt sich der größe des JPanels an.
Das vergrößern geschiet bisher über
Nun wollte ich in das JPanel ein JLabel hinzufügen und das Bild auf dem JLabel zeichnen und nicht mehr auf dem JPanel. Der Grund ist, dass ich auf diesem Weg den Hintergrund des JPanel transparent setzen kann und das Bild dennoch weiterhin angezeigt wird. Der Vorteil ist hierbei, dass wenn ich dann ein Logo einfüge, dass nicht ein Rechteck darstellt sondern irgend eine komplexe Geometrie, die Freiräume des Logos nicht mit der Farbe des JPanels besetzt sind.
Hier habe ich das vergößern versucht über:
Doch dies funktioniert nicht, das Label wierd hierbei nur skaliert, aber das Bild bleibt gleich Groß.
Das Bild soll sich jedoch an die Größe anpassen.
Ich möchte dabei auf folgende Variante verzichten, da ich glaube, dass das vergrößern des Bildes recht stotterfahrt von statten gehen würde:
ich habe ein JPanel auf das ich ein Bild zeichne. Das JPanel kann ich durch Ziehen mit der Maus vergrößeren bzw. verkleinern. Das Bild passt sich der größe des JPanels an.
Das vergrößern geschiet bisher über
Java:
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
Nun wollte ich in das JPanel ein JLabel hinzufügen und das Bild auf dem JLabel zeichnen und nicht mehr auf dem JPanel. Der Grund ist, dass ich auf diesem Weg den Hintergrund des JPanel transparent setzen kann und das Bild dennoch weiterhin angezeigt wird. Der Vorteil ist hierbei, dass wenn ich dann ein Logo einfüge, dass nicht ein Rechteck darstellt sondern irgend eine komplexe Geometrie, die Freiräume des Logos nicht mit der Farbe des JPanels besetzt sind.
Hier habe ich das vergößern versucht über:
Java:
bildLabel.setSize(getWidth(), getHeight());
Das Bild soll sich jedoch an die Größe anpassen.
Ich möchte dabei auf folgende Variante verzichten, da ich glaube, dass das vergrößern des Bildes recht stotterfahrt von statten gehen würde:
Java:
BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = resizedImg.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(image, 0, 0, w, h, null);
g2.dispose();
Java:
JPanel mainPanel = new JPanel();
JPanel smallPanel = new JPanel();
ImageIcon imageIcon = new ImageIcon("/logo.png");
JLabel bildLabel = new JLabel(imagIcon);
smallPanel.add(bildLabel);
mainPanel.add(smallPanel);