sunfruit[請?jiān)L問http://www.fruitres.cn]

          --我相信JAVA能走得更遠(yuǎn) QQ:316228067

          [原創(chuàng)]JAVA中圖片上疊加文字的方法

              --sunfruit
              
              JDK:1.3.x以上
              功能:下面是一個(gè)簡單在圖片上面疊加文字的方法,有朋友如果有這方面的問題,就起個(gè)了解的作用

              代碼如下:

          import java.io.IOException;
          import javax.imageio.ImageIO;
          import java.io.File;
          import java.awt.Font;
          import java.awt.Graphics2D;
          import java.awt.Color;
          import java.awt.image.BufferedImage;
          import java.util.Random;

          /**
           * <p>Title: 圖片疊加文字類</p>
           * <p>Description: </p>
           * <p>Copyright: Copyright (c) 2005</p>
           * <p>Company: </p>
           * @author sunfruit
           * @version 1.0
           */
          public class ImageAddWord {
              Random random=new Random(System.currentTimeMillis());
             
              BufferedImage buffImage=null;

              Graphics2D g=null;

              public ImageAddWord(int width, int height) {
                  buffImage=new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
              }

              public ImageAddWord()
              {
                  this(32,32);
              }
             
              /**
               * 圖片生成方法,如果需要在已有的圖片疊加文字,需要先調(diào)用g.drawImage方法將圖片繪制,再將文字繪制
               * @param str String 文字內(nèi)容
               * @param ext String 文件后綴名 png或是jpg
               */
              public void drawWord(String str,String ext)
              {
                  g=buffImage.createGraphics();
                  /**
                   如果要在已有的圖片疊加文字,這里調(diào)用g.drawImage()該方法,繪制圖片,酌情去掉下面的方法
                   */
                  g.setColor(Color.WHITE);//在已有的圖片疊加文字時(shí) 該方法酌情添加
                  g.fillRect(0, 0, buffImage.getWidth(), buffImage.getHeight());//在已有的圖片疊加文字時(shí) 該方法酌情添加
                  g.setColor(Color.BLACK);//設(shè)定文字顏色
                  g.drawString(str,0,12);

                  String filepath=System.getProperty("java.io.tmpdir") +random.nextInt(99999)+"." + ext;
                  try {
                      ImageIO.write(buffImage, ext,
                                    new File(filepath));
                      System.out.println("文件已經(jīng)生成,路經(jīng)為"+filepath);
                  } catch (IOException ex) {
                      ex.printStackTrace();
                  }
              }

              public void setFont(Font font)
              {
                  g.setFont(font);
              }

              public static void main(String[] args) {
                  ImageAddWord imageAddWord=new ImageAddWord(132,16);
                  String str="A B C";
                  imageAddWord.drawWord(str,"png");

              }

          }

          posted on 2006-02-20 13:36 sunfruit 閱讀(3808) 評論(0)  編輯  收藏 所屬分類: JAVA SE & EE

          主站蜘蛛池模板: 宜良县| 河池市| 梓潼县| 万盛区| 长顺县| 五寨县| 四子王旗| 巢湖市| 普兰县| 宣恩县| 体育| 隆林| 平安县| 花莲县| 额敏县| 张北县| 马边| 息烽县| 宁德市| 巴林左旗| 宜兰市| 定兴县| 南充市| 清徐县| 荔波县| 奉贤区| 子洲县| 镇赉县| 独山县| 吴江市| 黑龙江省| 全州县| 辽阳市| 门头沟区| 江永县| 庆阳市| 平武县| 伊通| 大城县| 丰县| 瓦房店市|