Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
JLineWriter - LineWriter.java

LineWriter.java

Caricato da:
Scarica il programma completo

  1. package jlinewriter;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Font;
  5. import java.awt.FontMetrics;
  6. import java.awt.Graphics;
  7. import java.awt.image.BufferedImage;
  8. import java.io.File;
  9. import java.io.IOException;
  10. import javax.imageio.ImageIO;
  11.  
  12. public class LineWriter {
  13.  
  14.     private BufferedImage image;
  15.  
  16.     public void createImage(String pString){
  17.         this.image=new BufferedImage(600, 400, BufferedImage.TYPE_INT_ARGB);
  18.         Graphics g=this.image.getGraphics();
  19.         Font font=new Font(Font.SANS_SERIF, Font.BOLD, 36);
  20.         FontMetrics metr=g.getFontMetrics(font);
  21.         int strWidth=metr.stringWidth(pString);
  22.         while(strWidth>this.image.getWidth()){
  23.             font=new Font(Font.SANS_SERIF, Font.BOLD, font.getSize()-1);
  24.             metr=g.getFontMetrics(font);
  25.             strWidth=metr.stringWidth(pString);
  26.         }
  27.         g.setFont(font);
  28.         g.setColor(new Color(255,255,255,255));
  29.         g.fillRect(0, 0, this.image.getWidth(), this.image.getHeight());
  30.         g.setColor(new Color(242,242,242,255));
  31.         g.drawString(pString, (this.image.getWidth()-strWidth)/2, (this.image.getHeight()-metr.getHeight())/2);
  32.         g.setColor(Color.BLACK);
  33.         for(int i=0; i<this.image.getWidth()/2; i++){
  34.             g.fillRect(i*4, 0, 2, this.image.getHeight());
  35.         }
  36.     }
  37.  
  38.     public void saveImage(File pFile) throws IOException{
  39.         String path=pFile.getAbsolutePath();
  40.         String ext=path.substring(path.length()-3);
  41.         if(!this.controlFile(ext)){
  42.             pFile=new File(path+".png");
  43.             ext="png";
  44.         }
  45.         ImageIO.write(this.image, ext, pFile);
  46.     }
  47.  
  48.     private boolean controlFile(String pExt){
  49.         if(pExt.equalsIgnoreCase("png") || pExt.equalsIgnoreCase("bmp") || pExt.equalsIgnoreCase("jpg") || pExt.equalsIgnoreCase("jpeg")){
  50.             return true;
  51.         }
  52.         return false;
  53.     }
  54.  
  55. }