巷尾的酒吧

            BlogJava :: 首頁(yè) :: 聯(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);
             // 驗(yàn)證輸出位置的縱坐標(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ū)(輸出多個(gè)文本段) 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);
             // 驗(yàn)證輸出位置的縱坐標(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;// 重新計(jì)算文本輸出位置
               }
              } else {
               for (int i = 0; i < arrlen; i++) {
                g.drawString(contentArr[i].toString(), this.x, this.y);
                this.y += this.fontsize + 2;// 重新計(jì)算文本輸出位置
               }
              }
             }
             g.dispose();
            } catch (Exception e) {
             System.out.println(e.getMessage());
            }

            return img;
           }

           /**
            * 修改圖片,返回修改后的圖片緩沖區(qū)(只輸出一行文本)
            *
            * 時(shí)間: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)
            //往圖片上寫(xiě)文件
             );

            //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) 評(píng)論(0)  編輯  收藏 所屬分類: eclipse

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 苍南县| 康定县| 平和县| 福贡县| 双桥区| 茂名市| 安图县| 正安县| 平和县| 上杭县| 攀枝花市| 茂名市| 岐山县| 马公市| 福建省| 莒南县| 曲水县| 沅陵县| 丰县| 丽水市| 石柱| 凌海市| 繁峙县| 靖远县| 定安县| 晋江市| 隆尧县| 双流县| 卢湾区| 津南区| 平江县| 定边县| 勃利县| 两当县| 靖宇县| 饶平县| 大渡口区| 乌海市| 睢宁县| 兴国县| 巴南区|