程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java 在圖片上寫字,兩個圖片兼並的完成辦法

java 在圖片上寫字,兩個圖片兼並的完成辦法

編輯:關於JAVA

java 在圖片上寫字,兩個圖片兼並的完成辦法。本站提示廣大學習愛好者:(java 在圖片上寫字,兩個圖片兼並的完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是java 在圖片上寫字,兩個圖片兼並的完成辦法正文


實例如下:

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);// 添加字體的屬性設置 
  
  private Graphics2D g = null; 
  
  private int fontsize = 0; 
  
  private int x = 0; 
  
  private int y = 0; 
  
  /**
   * 導入本地圖片到緩沖區
   */ 
  public BufferedImage loadImageLocal(String imgName) { 
    try { 
      return ImageIO.read(new File(imgName)); 
    } catch (IOException e) { 
      System.out.println(e.getMessage()); 
    } 
    return null; 
  } 
  
  /**
   * 導入網絡圖片到緩沖區
   */ 
  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()); 
      } 
    } 
  } 
  
  /**
   * 設定文字的字體等
   */ 
  public void setFont(String fontStyle, int fontSize) { 
    this.fontsize = fontSize; 
    this.font = new Font(fontStyle, Font.PLAIN, fontSize); 
  } 
  
  /**
   * 修正圖片,前往修正後的圖片緩沖區(只輸入一行文本)
   */ 
  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);//設置字體顏色 
      if (this.font != null) 
        g.setFont(this.font); 
      // 驗證輸入地位的縱坐標和橫坐標 
      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; 
  } 
  
  /**
   * 修正圖片,前往修正後的圖片緩沖區(輸入多個文本段) xory:true表示將內容在一行中輸入;false表示將內容多行輸入
   */ 
  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); 
      // 驗證輸入地位的縱坐標和橫坐標 
      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; 
  } 
  
  /**
   * 修正圖片,前往修正後的圖片緩沖區(只輸入一行文本)
   * 
   * 

以上就是為大家帶來的java 在圖片上寫字,兩個圖片兼並的完成辦法全部內容了,希望大家多多支持~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved