巷尾的酒吧

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            64 Posts :: 0 Stories :: 5 Comments :: 0 Trackbacks

          package writeimg;
          import javax.imageio.ImageIO;
          import java.awt.Color;
          import java.awt.Font;
          import java.awt.Graphics2D;
          import java.awt.image.BufferedImage;
          import java.io.File;
          import java.io.IOException;
          import java.net.URL;


          public class pic {

           private Font font = new Font("華文彩云", Font.PLAIN, 40);// 添加字體的屬性設(shè)置

           private Graphics2D g = null;

           private int fontsize = 0;

           private int x = 0;

           private int y = 0;

           /**
            * 導(dǎo)入本地圖片到緩沖區(qū)
            */
           public BufferedImage loadImageLocal(String imgName) {
            try {
             return ImageIO.read(new File(imgName));
            } catch (IOException e) {
             System.out.println(e.getMessage());
            }
            return null;
           }

           /**
            * 導(dǎo)入網(wǎng)絡(luò)圖片到緩沖區(qū)
            */
           public BufferedImage loadImageUrl(String imgName) {
            try {
             URL url = new URL(imgName);
             return ImageIO.read(url);
            } catch (IOException e) {
             System.out.println(e.getMessage());
            }
            return null;
           }

           /**
            * 生成新圖片到本地
            */
           public void writeImageLocal(String newImage, BufferedImage img) {
            if (newImage != null && img != null) {
             try {
              File outputfile = new File(newImage);
              ImageIO.write(img, "jpg", outputfile);
             } catch (IOException e) {
              System.out.println(e.getMessage());
             }
            }
           }

           /**
            * 設(shè)定文字的字體等
            */
           public void setFont(String fontStyle, int fontSize) {
            this.fontsize = fontSize;
            this.font = new Font(fontStyle, Font.PLAIN, fontSize);
           }

           /**
            * 修改圖片,返回修改后的圖片緩沖區(qū)(只輸出一行文本)
            */
           public BufferedImage modifyImage(BufferedImage img, Object content, int x,
             int y) {

            try {
             int w = img.getWidth();
             int h = img.getHeight();
             g = img.createGraphics();
             g.setBackground(Color.WHITE);
             g.setColor(Color.orange);//設(shè)置字體顏色
             if (this.font != null)
              g.setFont(this.font);
             // 驗證輸出位置的縱坐標(biāo)和橫坐標(biāo)
             if (x >= h || y >= w) {
              this.x = h - this.fontsize + 2;
              this.y = w;
             } else {
              this.x = x;
              this.y = y;
             }
             if (content != null) {
              g.drawString(content.toString(), this.x, this.y);
             }
             g.dispose();
            } catch (Exception e) {
             System.out.println(e.getMessage());
            }

            return img;
           }

           /**
            * 修改圖片,返回修改后的圖片緩沖區(qū)(輸出多個文本段) xory:true表示將內(nèi)容在一行中輸出;false表示將內(nèi)容多行輸出
            */
           public BufferedImage modifyImage(BufferedImage img, Object[] contentArr,
             int x, int y, boolean xory) {
            try {
             int w = img.getWidth();
             int h = img.getHeight();
             g = img.createGraphics();
             g.setBackground(Color.WHITE);
             g.setColor(Color.RED);
             if (this.font != null)
              g.setFont(this.font);
             // 驗證輸出位置的縱坐標(biāo)和橫坐標(biāo)
             if (x >= h || y >= w) {
              this.x = h - this.fontsize + 2;
              this.y = w;
             } else {
              this.x = x;
              this.y = y;
             }
             if (contentArr != null) {
              int arrlen = contentArr.length;
              if (xory) {
               for (int i = 0; i < arrlen; i++) {
                g.drawString(contentArr[i].toString(), this.x, this.y);
                this.x += contentArr[i].toString().length()
                  * this.fontsize / 2 + 5;// 重新計算文本輸出位置
               }
              } else {
               for (int i = 0; i < arrlen; i++) {
                g.drawString(contentArr[i].toString(), this.x, this.y);
                this.y += this.fontsize + 2;// 重新計算文本輸出位置
               }
              }
             }
             g.dispose();
            } catch (Exception e) {
             System.out.println(e.getMessage());
            }

            return img;
           }

           /**
            * 修改圖片,返回修改后的圖片緩沖區(qū)(只輸出一行文本)
            *
            * 時間:2007-10-8
            *
            * @param img
            * @return
            */
           public BufferedImage modifyImageYe(BufferedImage img) {

            try {
             int w = img.getWidth();
             int h = img.getHeight();
             g = img.createGraphics();
             g.setBackground(Color.WHITE);
             g.setColor(Color.blue);//設(shè)置字體顏色
             if (this.font != null)
              g.setFont(this.font);
             g.drawString("   g.dispose();
            } catch (Exception e) {
             System.out.println(e.getMessage());
            }

            return img;
           }

           public BufferedImage modifyImagetogeter(BufferedImage b, BufferedImage d) {

            try {
             int w = b.getWidth();
             int h = b.getHeight();
             

             g = d.createGraphics();
             g.drawImage(b, 100, 10, w, h, null);
             g.dispose();
            } catch (Exception e) {
             System.out.println(e.getMessage());
            }

            return d;
           }

           public static void main(String[] args) {

            pic tt = new pic();

            BufferedImage d = tt.loadImageLocal("D:\\11.jpg");
          //  BufferedImage b = tt
          //    .loadImageLocal("E:\\文件(word,excel,pdf,ppt.txt)\\zte-logo.png");
             tt.writeImageLocal("D:\\cc.jpg",tt.modifyImage(d,"曹原",90,90)
            //往圖片上寫文件
             );

            //tt.writeImageLocal("D:\\cc.jpg", tt.modifyImagetogeter(b, d));
            //將多張圖片合在一起
            System.out.println("success");
           }

          }







          http://blog.csdn.net/caoyuan10036/article/details/7278735
          posted on 2013-06-04 20:54 abing 閱讀(939) 評論(0)  編輯  收藏 所屬分類: eclipse

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 北辰区| 仁化县| 巴林左旗| 蓬安县| 安溪县| 穆棱市| 拉萨市| 密云县| 临邑县| 泸溪县| 梁平县| 永昌县| 藁城市| 密云县| 陇南市| 和政县| 噶尔县| 临桂县| 连平县| 临清市| 涿州市| 古蔺县| 溧阳市| 长顺县| 黄冈市| 古交市| 德钦县| 阿拉善盟| 留坝县| 东山县| 五华县| 斗六市| 新沂市| 会泽县| 沧源| 孟村| 闽侯县| 临朐县| 分宜县| 尚志市| 普洱|