Image skalieren

Spin

Top Contributor
Hey Leute nochmal eine kleine Frage, würde gerne ein Spielfeld skalieren lassen. Doch warum will die Methode nicht?

Java:
   protected void paintComponent(Graphics g) {
        /* Hintergrundbild auf Bildschirmgröße skalieren */
        Graphics2D g2 = (Graphics2D)g;
        int new_width = (int)(bg_image.getWidth() *xScaleFactor);
        int new_height =(int)(bg_image.getHeight()*yScaleFactor);
        g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                            RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g2.drawImage(bg_image, 0, 0, new_width,new_height, null);
        
        
    }

Wenn ich :
Java:
   protected void paintComponent(Graphics g) {
        g.drawImage(bg_image, 0, 0, new_width,new_height, null);
    }

dass mache, dann gehts, aber ich müsste immer mein Bild in die richtige größe designen :/
:autsch:

Java:
BufferedImage bdest =
      new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
   Graphics2D g = bdest.createGraphics();
   AffineTransform at =
      AffineTransform.getScaleInstance((double)width/bsrc.getWidth(),
          (double)height/bsrc.getHeight());

Diese Variante will auch nicht so richtig , aber ist wohl nicht mehr so üblich , ah common pitfall ...

danke für die hilfe
 
Was heißt "will nicht"?

g2.drawImage(bg_image, 0, 0, getWidth(), getHeight(), null);

sollte das Bild eigentlich so groß malen, wie die Component ist. Sind die scalefactoren vielleicht falsch?
 
Java:
private double xScaleFactor, yScaleFactor = 0.8;

Hallo Marco 🙂

Ok Cool, deine einfache Variante funktioniert 😉
Ich habe mich noch nicht so richtig mit RenderingHints auseinander gesetzt, aber dass brauche ich um ein Bild automatisch von 17zoll bildschirm zu einem 24 zoll zu vergrößern.

Gestreckt bekomme ich es mit deiner Hilfe.
Will es ja nicht vom User skalieren lassen können. Danke dir, für deine schnelle Hilfe.:toll:
 

Neue Themen


Zurück
Oben