F
fat32
Gast
Hi,
ich male ein BufferedImage auf ein JPanel:
Ich möchte das Bild so vergrößern bzw. verkleinern:
Die setImage-Methode sieht so aus:
Das Ändern der Größe funktioniert auch.
Was mich allerdings wundert, ist, dass das Bild zwar größer gezeichnet wird, wenn ich den Bildbereich größer ziehe, aber nicht kleiner, wenn ich ihn kleiner ziehe.
Die Größe wird intern zwar geändert, aber das Bild wird nicht richtig angezeigt, obwohl ich repaint() aufrufe.
An was kann das liegen?
MfG
Simon
ich male ein BufferedImage auf ein JPanel:
Java:
protected void paintComponent( Graphics g )
{
if ( image != null )
g.drawImage( image, 0, 0, image.getWidth(null), image.getHeight(null), this );
}
Ich möchte das Bild so vergrößern bzw. verkleinern:
Java:
private void resizeImage(int x, int y)
{
if(x == 0 || y == 0)
{
System.err.println("x und y dürfen nicht 0 sein");
}
else
{
this.setImage(this.getImage().getScaledInstance(x, y, BufferedImage.SCALE_FAST));
this.refresh();
}
}
Die setImage-Methode sieht so aus:
Java:
public void setImage(Image img)
{
BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(img,0,0,bi.getWidth(),bi.getHeight(),null);
this.setImage(bi);
}
Das Ändern der Größe funktioniert auch.
Was mich allerdings wundert, ist, dass das Bild zwar größer gezeichnet wird, wenn ich den Bildbereich größer ziehe, aber nicht kleiner, wenn ich ihn kleiner ziehe.
Die Größe wird intern zwar geändert, aber das Bild wird nicht richtig angezeigt, obwohl ich repaint() aufrufe.
An was kann das liegen?
MfG
Simon