Bitmaps dynamisch erstellen



  • Hi,

    Kann mir jemand von euch sagen wie ich dynamisch bitmaps nach vorher festgelegten Werten erstellen kann?

    die Werte wären z.B. Höhe, Breite, Hintergundfarbe, zentrierter Text, Textfarbe, neuer Dateiname



  • Geuse schrieb:

    Kann mir jemand von euch sagen wie ich dynamisch bitmaps nach vorher festgelegten Werten erstellen kann?

    Meinst du so? 🙂

    import java.awt.Color;
    import java.awt.FontMetrics;
    import java.awt.Graphics2D;
    import java.awt.geom.Rectangle2D;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
    
    public class TestBitmap
    {
       public static void main (String[] args)
       {
          BufferedImage image = createNewImage(300,300,Color.RED);
          drawTextOnImage(image,"Hallo, Hallo, Hallo, Hallo, Hallo!",Color.YELLOW);
          saveImageAsBMP(image,"Test.bmp");
       }
    
       public static BufferedImage createNewImage(int width, int height, Color background)
       {
          BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
          Graphics2D graphics = image.createGraphics();
          graphics.setColor(background);
          graphics.fillRect(0,0,width,height);
          return image;
       }
    
       public static void drawTextOnImage (BufferedImage image, String text, Color textColor)
       {
          Graphics2D graphics = image.createGraphics();
          graphics.setColor(textColor);
          Rectangle2D rect = graphics.getFontMetrics().getStringBounds(text,graphics);
          int height = (int)Math.round(rect.getHeight());
          int width = (int)Math.round(rect.getWidth());
          graphics.drawString(text, (image.getWidth() - width) >> 1, (image.getHeight() - height) >> 1);
       }
    
       public static void saveImageAsBMP(BufferedImage image, String filename)
       {
          try
          {
             File file = new File(filename);
             ImageIO.write(image,"bmp",file);
          }
          catch (IOException e)
          {
    
          }
       }
    }
    

    Jetzt musst du nur noch Parameter für den Programmaufruf einbauen. 🙂



  • cool, danke, sowas hab ich gesucht 🙂



  • jemand ne Idee wie ich sowas in C++ realisiert bekomm?

    Komme mit CBitmap, BITMAP, Graphics etc. grad mal gar nicht zurecht.



  • MSDN->CBitmap anschauen
    Bild erstellen mit CBitmap::CreateBitmap
    Da gibst du Höhe,Breite und Farbtiefe an.


Anmelden zum Antworten