实例如下:

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;

}

/**

* 修改图片,返回修改后的图片缓冲区(只输出一行文本)

*

* 时间: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);//设置字体颜色

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 在图片上写字,两个图片合并的实现方法全部内容了,希望大家多多支持聚米学院~

java 两张图片合并_java 在图片上写字,两个图片合并的实现方法相关推荐

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

    实例如下: package writeimg; import javax.imageio.ImageIO; import java.awt.Color; import java.awt.Font; i ...

  2. php如何在图片上写字,php在图片上写字并生成图片

    http://www.doczj.com/doc/db4fbed65022aaea988f0f0c.html涮涮网 用php在图片上写字(文字或数字),并生成新图片 下面是自己封装的一个函数: //调 ...

  3. python怎么在图片上写字_python在图片上写汉字

    1.python opencv的putText只能画英文上去 2.借鉴这个https://blog.csdn.net/dcrmg/article/details/79108491 使用pil 首先,你 ...

  4. java制作海报一:java使用Graphics2D 在图片上写字,文字换行算法详解

    文章目录 前言 一.直接上代码 1. 写字方法 2. 换行算法 二. 叙述换行算法 前言 代码都上传到GitHub了,这里仅仅是贴出来主要部分,GitHub传送门:https://github.com ...

  5. chatgpt赋能python:Python将两张图片拼接成一张图:让您的图片处理更高效!

    Python将两张图片拼接成一张图:让您的图片处理更高效! 作为一个有着10年Python编程经验的工程师,我发现Python成为了许多项目的主要语言,其中涵盖了很多关于图像处理的应用程序.在本文中, ...

  6. 怎么用html把字写到图片上,用HTML代码在图片上写字

    一.以图片作为背景.在图片上写字,主要是在 里用到了(Spacer)空白. type="horizontal" align=#> 水平空白 align=center(居中), ...

  7. php上传图片限制类型,php,_使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 。都是默认的配置,php - phpStudy...

    使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 $upl ...

  8. 在自行下载的背景图片上写字

    在背景图片上写字 1 下载并修改图片 2 代码 3 其它例子 3.1 不用空格分行 3.2 竖行 主要是参考了 写对联的代码,发散思维,联想到换成自己随便从网页上下载一张图片作为背景,在上面写字是不是 ...

  9. Python爬虫:运用多线程、IP代理模块爬取百度图片上小姐姐的图片

    Python爬虫:运用多线程.IP代理模块爬取百度图片上小姐姐的图片 1.爬取输入类型的图片数量(用于给用户提示) 使用过百度图片的读者会发现,在搜索栏上输入关键词之后,会显示出搜索的结果,小编想大多 ...

最新文章

  1. Redis SLAVE过期键策略
  2. STM32 基础系列教程 41 – SDMMC
  3. C语言中的关键字,变量的定义,变量的命名规则,交换两个变量的值,驼峰命名法【 C语言变量名命名法则】
  4. Qt5.12编译MySQl5.1.37驱动
  5. Java面向对象(四)final关键字
  6. 先验概率与后验概率、贝叶斯区别与联系
  7. html class和id,css教程之样式表的基本语法(二) class(类)和id的一个小实例
  8. 树状数组的建树 单点修改 单点查询 区间修改 区间查询
  9. 快速入门:OpenShift上的Spring Boot和WildfFly 8.2
  10. fileitem方法_FileItem的常用方法
  11. 1个月时间整理了2019年上千道Java面试题,近500页文档!
  12. Map、List、Set在Java中的各种遍历方法
  13. plsql查询无结果集_何恺明一作,刷新7项检测分割任务,无监督预训练完胜有监督...
  14. 如何c51和mdk共存兼容_如何使用无线技术控制大功率快速充电
  15. win10应用商店无法安装
  16. NginxWebUI - 图形化的 Nginx 配置管理工具
  17. Echarts 数据可视化 实现半圆饼图效果,渐变颜色
  18. android在体检报告叫什么,体检报告检测分析
  19. Qt:如何生成word报表
  20. 把一个人的特点写具体作文_把一个人的特点写具体作文800字

热门文章

  1. TerminateProcess
  2. socket编程java笔试_面向应届实习生的Java笔试题
  3. Linux系统route、ip route、ip rule简介
  4. opensips-01
  5. hsf端口_hsf配置
  6. docker制作nginx源码镜像
  7. Kotlin协程:CoroutineScope 作用域
  8. SkLearn 对上证50成分股聚类
  9. dede移动端调用上一篇下一篇
  10. linux上升级tesseract,linux 安装Tesseract-OCR