最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 在圖片上寫字,兩個圖片合并的實現(xiàn)方法

 更新時間:2016年11月12日 19:54:29   投稿:jingxian  
下面小編就為大家?guī)硪黄猨ava 在圖片上寫字,兩個圖片合并的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

實例如下:

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("reyo.cn", w - 85, h - 5); 
      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"); 
  } 
  
}

以上就是小編為大家?guī)淼膉ava 在圖片上寫字,兩個圖片合并的實現(xiàn)方法全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • java以json格式向后臺服務(wù)器接口發(fā)送請求的實例

    java以json格式向后臺服務(wù)器接口發(fā)送請求的實例

    下面小編就為大家分享一篇java以json格式向后臺服務(wù)器接口發(fā)送請求的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • SpringBoot、Java 使用 Jsoup 解析 HTML 頁面的詳細(xì)步驟

    SpringBoot、Java 使用 Jsoup 解析 HTML 頁面

    這篇文章主要介紹了SpringBoot、Java 使用 Jsoup 解析 HTML 頁面的詳細(xì)步驟,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Mybatis分頁插件PageHelper的使用詳解

    Mybatis分頁插件PageHelper的使用詳解

    這篇文章主要介紹了Mybatis分頁插件PageHelper的相關(guān)資料,該插件目前支持Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六種數(shù)據(jù)庫分頁需要的朋友可以參考下
    2016-12-12
  • spring Cloud微服務(wù)跨域?qū)崿F(xiàn)步驟

    spring Cloud微服務(wù)跨域?qū)崿F(xiàn)步驟

    這篇文章主要介紹了spring Cloud微服務(wù)跨域?qū)崿F(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • java socket編程實例代碼講解

    java socket編程實例代碼講解

    這篇文章主要介紹了java socket編程示例講解,大家參考使用吧
    2013-12-12
  • 詳解使用spring validation完成數(shù)據(jù)后端校驗

    詳解使用spring validation完成數(shù)據(jù)后端校驗

    這篇文章主要介紹了詳解使用spring validation完成數(shù)據(jù)后端校驗,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • springboot如何獲取文件流

    springboot如何獲取文件流

    這篇文章主要介紹了springboot如何獲取文件流,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java重點之基于比較的七大排序

    Java重點之基于比較的七大排序

    最近幾天在研究排序算法,看了很多博客,發(fā)現(xiàn)網(wǎng)上有的文章中對排序算法解釋的并不是很透徹,而且有很多代碼都是錯誤的,所以我根據(jù)這幾天看的文章,整理了一個較為完整的排序算法總結(jié),本文中的所有算法均有JAVA實現(xiàn),經(jīng)本人調(diào)試無誤后才發(fā)出,如有錯誤,請各位前輩指出
    2021-10-10
  • 獲取Java線程轉(zhuǎn)儲的常用方法(推薦)

    獲取Java線程轉(zhuǎn)儲的常用方法(推薦)

    這篇文章主要介紹了獲取Java線程轉(zhuǎn)儲的常用方法,本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java實現(xiàn)微信公眾號獲取臨時二維碼功能示例

    Java實現(xiàn)微信公眾號獲取臨時二維碼功能示例

    這篇文章主要介紹了Java實現(xiàn)微信公眾號獲取臨時二維碼功能,結(jié)合實例形式分析了java調(diào)用微信公眾號接口實現(xiàn)臨時二維碼生成功能相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10

最新評論

兴文县| 鹤山市| 鄂温| 岳西县| 沂源县| 吉安县| 威海市| 宁南县| 黄冈市| 象山县| 蓬溪县| 邢台县| 会昌县| 高邑县| 沅陵县| 隆子县| 光山县| 富顺县| 砚山县| 周宁县| 江永县| 凤庆县| 新津县| 廉江市| 句容市| 隆回县| 宁明县| 武穴市| 邓州市| 肇州县| 辽宁省| 耿马| 芮城县| 和静县| 蒙山县| 吉安县| 东宁县| 绥阳县| 县级市| 文安县| 兰坪|