- 浏览: 448790 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (168)
- Hibernate (17)
- MySQL (7)
- struts2 (14)
- Spring (12)
- Javascript (20)
- CSS (8)
- ajax/jquery (11)
- HttpClient (6)
- HTTP (1)
- java小知识 (23)
- Servlet/JSP (5)
- Oracle (0)
- Quartz (3)
- Lucene/Nutch (12)
- c# winform (2)
- J2ME (1)
- POI (5)
- php5 (2)
- DWR(Ajax) (1)
- log4j (1)
- dom4j (3)
- 獲取郵件聯系人 (2)
- 随意 (5)
- Heritrix (1)
- ireport+jasper (1)
- 算法 (2)
- java虚拟机 (1)
- maven (2)
最新评论
-
janrick:
太感谢了,我正需要加密的函数呢
java中DES加密解密例子 -
xuganggogo:
suyang119 写道请教一下,补充的三级的可以用吗?当然可 ...
关于条件查询detachedCriteria的注意的地方 -
suyang119:
请教一下,补充的三级的可以用吗?
关于条件查询detachedCriteria的注意的地方 -
xuganggogo:
大江帅 写道var name="attriName& ...
有关在JavaScript中使用EL表达式的问题 -
大江帅:
var name="attriName"; ...
有关在JavaScript中使用EL表达式的问题
功能:直接在一张已有的图片上写字,可指定文字颜色。
如果背景图片是空,生成一张白图片,根据文本信息,来决定图片的长度和宽度。
package pictures;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import javax.imageio.ImageIO;
public class Draw {
private static Font mFont = new Font("宋体",Font.PLAIN,20);
public static void main(String[] args) {
File f1 = new File("C:\\Documents and Settings\\xugang\\桌面\\t.txt");
File f2 = new File("C:\\Documents and Settings\\xugang\\桌面\\testPictrue.JPEG");
File f3 = new File("C:\\Documents and Settings\\xugang\\桌面\\1.jpg");
draw2(f1,f2,f3,true);
}
//直接在一张已有的图片上写字,可指定文字颜色。如果背景图片参数为空或者"",则写张白图
public static void draw2( File content , File outPictrue , File background , boolean b ){
FileReader f = null ;
try {
f = new FileReader(content);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
BufferedReader br = new BufferedReader(f);
String line = "";
int lineNum = 0 ; //一共有多少行
List<String> list = new ArrayList<String>();
try {
while( (line = br.readLine()) != null){
System.out.println(line);
list.add(line);
++lineNum;
}
} catch (IOException e1) {
e1.printStackTrace();
}
int[] iArray = new int[list.size()];
int length = list.size();
for(int k = 0 ; k < length ; k++){
iArray[k] = format1(list.get(k));
}
Arrays.sort(iArray);
int lineLength = iArray[length-1];
System.out.println("文本中最长的一行的长度是:"+lineLength);
System.out.println("一共的行数是:"+lineNum);
BufferedImage image = null;
if( background.equals("") || background == null){
double h = 256/16;
double w = 85/10;
int width=(int) (w*lineLength)+ 40 , height=(int) (h*lineNum);
image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
}else{
try {
image = ImageIO.read(background);
} catch (IOException e1) {
e1.printStackTrace();
}
}
Graphics g = image.getGraphics();
// g.setColor(getRandColor(200,250));
// g.fillRect(1, 1, width-1, height-1);
if( b == false){
g.setColor(new Color(102,102,102)); //设字体为黑色,否则就是白色
}
// g.drawRect(0, 0, width-1, height-1);
g.setFont(mFont);
int k = 0;
Iterator<String> it = list.iterator();
while(it.hasNext()){
g.drawString(it.next(), 30, 15 + 20*k);
++k;
}
try {
ImageIO.write(image, "JPEG", outPictrue);
} catch (IOException e) {
e.printStackTrace();
}
}
//返回占位符的长度。
public static int format1( String s){
int length = 0 ;
for(int t = 0; t < s.length() ; t++){
if( s.charAt(t)> 255){
length = length + 2;
}else{
length = length + 1 ;
}
}
System.out.println(length);
return length;
}
//生成一张白图片,根据文本信息,来决定图片的长度和宽度。
//缺点:字体不同,字体样式不同,都会影响整个图片。
public static void draw1(){
FileReader f = null ;
try {
f = new FileReader("C:\\Documents and Settings\\xugang\\桌面\\t.txt");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
BufferedReader br = new BufferedReader(f);
String line = "";
int lineNum = 0 ; //一共有多少行
List<String> list = new ArrayList<String>();
try {
while( (line = br.readLine()) != null){
System.out.println(line);
list.add(line);
++lineNum;
}
} catch (IOException e1) {
e1.printStackTrace();
}
int[] iArray = new int[list.size()];
int length = list.size();
for(int k = 0 ; k < length ; k++){
iArray[k] = format1(list.get(k));
}
Arrays.sort(iArray);
int lineLength = iArray[length-1];
System.out.println("文本中最长的一行的长度是:"+lineLength);
System.out.println("一共的行数是:"+lineNum);
double h = 256/16;
double w = 85/10;
int width=(int) (w*lineLength)+ 40 , height=(int) (h*lineNum);
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
// g.setColor(getRandColor(200,250));
g.fillRect(1, 1, width-1, height-1);
g.setColor(new Color(102,102,102));
g.drawRect(0, 0, width-1, height-1);
g.setFont(mFont);
int k = 0;
Iterator<String> it = list.iterator();
while(it.hasNext()){
g.drawString(it.next(), 30, 15+15*k);
++k;
}
try {
ImageIO.write(image, "JPEG", new File("C:\\Documents and Settings\\xugang\\桌面\\testPictrue.JPEG"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
发表评论
-
正则替换标点符号的方法。解决方式还不错
2011-01-28 11:08 3300地址:http://topic.csdn.net/u/2008 ... -
hadoop环境搭建问题记录
2010-10-12 17:11 12661,错误 org.apache.hadoop.hdfs.se ... -
Java 正则表达式
2010-07-16 11:52 13461. 正则表达式规则 1.1 普通字符 字母、数字 ... -
字符串转换为Date
2010-04-24 11:04 1747查看了下SimpleDateFomart这个类。 用字符串转 ... -
正则表达式替换掉字符串中的重复字符
2009-12-11 17:51 2352str = str.replaceAll("( ... -
JFreeChart 部分API说明
2009-08-15 11:55 963http://amozon.iteye.com/blog/ ... -
反编译工具
2009-08-14 14:46 1215jad及常用命令 一、基本用法 Usage:jad ... -
JFreeChart
2009-08-10 18:35 11961,柱状图 package xu.chart.demo; ... -
java生成缩略图
2009-07-17 11:02 2358转自:http://wing929.iteye.com/blo ... -
jstl 时间处理
2009-06-24 14:06 1607jstl 中的日期格式化! [转贴 2005-10-25 1 ... -
Java Properties类
2009-05-31 14:26 2116全文转自:http://twtmnm1314.iteye.co ... -
java 的pass by value(传值)
2009-05-13 15:21 1175这里写一下java的值传递 参数是基本类型的时候: cla ... -
快速修改本機局域網IP信息
2009-05-09 13:07 2066在開發過程中,遇到需要頻繁的切換IP的問題。每次手動修改IP需 ... -
double:保留几位小数点
2009-03-06 10:03 2304java.text.DecimalFormat myforma ... -
增加环境内存--java
2009-02-13 14:50 1033在eclipse中,在虚拟机环境变量VM arguments中 ... -
javaIO流读繁体中文网页的乱码问题
2009-02-01 17:09 1634IDE:eclipse IDE的编码是UTF-8(开发需要) ... -
学习java.lang.ProcessBuilder类
2009-02-01 17:08 5517近来的工作中,了 ... -
java中DES加密解密例子
2009-02-01 17:07 4222最近在学习一些关于加 ... -
Servlets/JSP开发技术问答
2009-02-01 17:06 956学习J2EE,需要学习很多 ... -
jdk1.5新特性 ConcurrentHashMap
2009-02-01 17:06 7193曾经研究过jkd1.5新特性,其中ConcurrentHash ...
相关推荐
这个"Java编写的图片上加文字Demo"项目利用Eclipse 4.2.1作为开发环境,实现了在本地图片上动态添加文字的功能,允许用户自定义字体样式,从而制作出具有个性化的水印。下面我们将深入探讨这一技术实现的关键知识点...
在Java编程语言中,实现将文字写入图片是一项常见的任务,尤其在图形用户界面(GUI)开发、数据可视化或图像处理应用中。本教程将详细解释如何使用Java来完成这一功能,主要涉及到Java的`java.awt`和`javax.imageio`...
在Java编程中,给图片添加水印是一项常见的需求,无论是为了版权保护还是...但以上代码已经足够作为基础,帮助你开始在Java中实现图片加水印的功能。记得在运行此代码前,确保已经正确引入了Apache Commons Imaging库。
在Java编程中,实现图片上传并添加水印效果是一项常见的任务,这通常涉及到图像处理、图形用户界面(GUI)和文件I/O等多个方面。在这个项目中,我们将关注以下几个关键知识点: 1. **Java图像处理库**:Java标准库...
在IT行业中,图片水印是一种常见的技术...在提供的压缩包文件"WaterMark"中,可能包含一个或多个示例代码,用于演示如何使用Java实现图片水印。这些代码可以作为学习和参考的资源,帮助你更好地理解和应用上述知识点。
Java 实现图片添加水印图片和水印文字 Java 是一种广泛应用于企业级开发的编程语言,拥有强大灵活的图形处理能力。本文将详细介绍如何使用 Java 实现图片添加水印图片和水印文字,并对代码进行解释。 图片添加水印...
基于java实现的手写识别软件,字库是特征点字库,通过KNN算法计算,汉字的特征点通过递归方法得到,核心代码量300行左右,识别效果良好。直接使用eclipse导入工程即可,单击startframe.java开始运行
Java手写识别技术是一种在Java平台上实现的图像处理与机器学习技术,主要用于识别手写数字或字符。在本项目中,"java手写识别超级准确" 提示我们这是一个高效的识别系统,具有高度的准确率,并且它采用了Swing库来...
对图片进行水印处理,利用TESS4J识别图片并提取信息生成excel表格。里面有字库文件所以占用空间较大。 说明:https://blog.csdn.net/xlantian/article/details/80789115
在Java编程环境中,实现Word文档中的表格指定位置盖章,并让印章悬浮于文字之上,是一项技术挑战,但可以通过一些库和技巧来实现。这个过程主要涉及到对Word文档内容的读取、修改以及重新保存,同时要确保印章图像不...
在这个特定的应用场景中,我们利用 JavaCV 对图片进行文字识别(OCR,Optical Character Recognition),以定位并提取指定文字在图片中的位置坐标,同时优化识别速度。 首先,我们需要了解 OCR 的基本概念。OCR ...
在Java开发中,实现Word表格指定位置盖章并设置章悬浮于文字之上,涉及到的技术主要包括Apache POI库的使用、图像处理以及Word文档对象模型的理解。Apache POI是Java中用于处理Microsoft Office格式文件(如DOCX)的...
Java实现PDF模板指定位置插入图片 Java语言是当今最流行的编程语言之一,对于PDF文档的处理有着非常广泛的应用。本文将详细介绍如何使用Java语言在PDF模板的指定位置插入图片,实现对PDF文档的自定义和编辑。 ...
3.1.JAVA掌握AWT的BufferedImage、Graphics2D、Font;Redis;图片生成随机位置 随机中文文字、随机抠图、拼图都只需要用到BufferedImage和Graphics2D。 3.2.前端熟悉点击事件,根据点击事件的坐标位置、图片的位置...
通过以上步骤,我们可以成功地在Java SpringBoot应用中集成PaddleOCR,实现高效、便捷的OCR图片识别服务。这种集成方式不仅充分利用了PaddleOCR的强大功能,也发挥了Java在后端服务上的稳定性和易用性,为开发者提供...
在Java编程环境中,实现Word表格指定位置盖印并设置印章悬浮于文字之上,涉及到的技术主要包括Apache POI库的使用、图像处理以及Word文档的操作。Apache POI是Java中广泛使用的微软Office文档处理库,它允许开发者...
在文字转图片的过程中,`Graphics2D`是关键工具,可以让我们在指定的图像上绘制文字,调整字体、颜色、大小和位置。 2. **BufferedImage** `BufferedImage`是Java中的一个图像处理类,用于创建和操作图像。在文字...
在本文中,我们将深入探讨如何使用Java编程语言为图片添加文字或图像水印。这个话题源于一个名为"Java水印.rar"的压缩包文件,它包含了一段Java源代码,用于实现这一功能。该压缩包有四个文件:RunIt.bat(运行脚本...
在Java编程语言中,处理图像是一项常见的任务,特别...如果你需要在Java项目中实现图片加文字的功能,可以参考上述代码,并根据实际需求进行调整。当然,解压并研究"JavaImage"文件会提供更具体的实现细节和代码示例。
在JAVA中实现Word文档中的电子印章效果,可以让文档看起来更加正式和权威,尤其适用于法律、合同等场景。这个过程涉及到的主要技术包括Java编程语言、Apache POI库以及可能的图像处理技术。Apache POI是一个流行的...