论坛首页 Java企业应用论坛

java图片工具(加3D效果字体和图片)

浏览 4920 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-11-24   最后修改:2009-11-24

//GoodFont只是一个标记字体特性的bean

//加字体(3D效果)
 public static void createJpgByGoodFont(String inputPath,String outputPath,GoodFont[] goodfont){
  BufferedImage image;
  try {
   image = ImageIO.read(new FileInputStream(inputPath));
   
   if(goodfont==null)return;
  
   FileOutputStream jpgOut = new FileOutputStream(outputPath);
   Graphics2D g = image.createGraphics();
   
   for(GoodFont gf:goodfont){
    int style=gf.getStyle();
    int size=gf.getSize();
    String name=gf.getName();
    int leftX=gf.getLeft();
    int topY=gf.getTop();
    int width=gf.getWidth();
    int high=gf.getHigh();
    int textDirect=gf.getTextDirect();
    String text=gf.getText();
    String align=gf.getAlign();
    Color color=gf.getColor();
    Color fillColor=gf.getFillColor();
    Color drawColor=gf.getDrawColor();
    
    
    Font font = new Font(name, style, size);
    g.setFont(font);
    
    
  
    if(fillColor!=null){
     g.setColor(fillColor);
     g.fill3DRect(leftX, topY, width, high, true);
    }
    
    if(drawColor!=null){
     g.setColor(drawColor);
     for(int i=0;i<gf.getDrawBorder();i++)
     g.draw3DRect(leftX, topY, width, high+i, true);
    }
    
    
    //设置背景色,仅当背景无图片时使用
//    g.setBackground(Color.YELLOW);
//    g.setColor(Color.BLACK);
    g.setColor(color);
    if(align.equalsIgnoreCase("right")){
     leftX=leftX+width-size*text.length();
    }
    else if(align.equalsIgnoreCase("center")){
     leftX=leftX+(width-size*text.length())/2;
    }
    int j = size;
    System.out.println("text="+text+",leftX="+leftX+",topY="+topY+",size="+size+",color="+color+",border="+gf.getDrawBorder());
    if(textDirect==1)//横排的文字
     g.drawString(text,leftX, topY+j);
    else{//竖排的文字
     for(int i=0;i<text.length();i++)
     {
      g.drawString(text.substring(i,i+1),leftX,topY+j);
      j+=size;
     }
    }
   }
   g.dispose();
   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(jpgOut);
   encoder.encode(image);
   jpgOut.flush();
   jpgOut.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }catch (Throwable e) {
   e.printStackTrace();
  }
 }

 


//加图片
 public static void createJpgByLogo(String inputPath,String outputPath,String logoPath,int x,int y){
  BufferedImage image;
  try {
   image = ImageIO.read(new FileInputStream(inputPath));
   
   if(logoPath==null)return;
  
   FileOutputStream jpgOut = new FileOutputStream(outputPath);
   Graphics2D g = image.createGraphics();
   g.drawImage(ImageIO.read(new FileInputStream(logoPath)), x, y, null);
   
   g.dispose();
   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(jpgOut);
   encoder.encode(image);
   jpgOut.flush();
   jpgOut.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }catch (Throwable e) {
   e.printStackTrace();
  }
 }

   发表时间:2009-11-26  
【无图无真相】
0 请登录后投票
   发表时间:2009-11-27  
网上抄的例子?
0 请登录后投票
   发表时间:2009-11-27  
就是 都没看到一张图。
0 请登录后投票
   发表时间:2009-12-10  
呵呵,我过阵子再发图吧,最近没空。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics