栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 在图片上写字,两个图片合并的实现方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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; 
  } 
  
   
  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; 
  } 
  
   
  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);//设置字体颜色 
      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"); 
  } 
  
}

以上就是小编为大家带来的java 在图片上写字,两个图片合并的实现方法全部内容了,希望大家多多支持考高分网~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/148667.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号