`
picksun
  • 浏览: 10345 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

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

阅读更多

//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();
  }
 }

分享到:
评论
4 楼 picksun 2009-12-10  
呵呵,我过阵子再发图吧,最近没空。
3 楼 iehyou 2009-11-27  
就是 都没看到一张图。
2 楼 whaosoft 2009-11-27  
网上抄的例子?
1 楼 energykey 2009-11-26  
【无图无真相】

相关推荐

    java源码包---java 源码 大量 实例

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java开源包5

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    JAVA上百实例源码以及开源项目

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    JAVA上百实例源码以及开源项目源代码

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包4

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包3

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java源码包2

     Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...

    java开源包11

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包6

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包9

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包4

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包101

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包8

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包10

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印...

    java开源包3

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    java开源包1

    BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...

    lwuit.jar JavaME UI工具包

    LWUIT是一个轻量级JavaME UI工具包。主要的特性包括:类似Swing 的MVC架构,支持多种布局(Layouts),皮肤更换,字体,触摸屏,动画效果,Rich控件,3D集成,Painter,模式对画框,I18N/L10N等

Global site tag (gtag.js) - Google Analytics