- 浏览: 531887 次
- 性别:
- 来自: 山东济南
文章分类
最新评论
-
dragon_8844:
非常不错,nice
java.util.concurrent 多线程框架 -
wusendong:
很好的文章!受益匪浅,谢谢!
java.util.concurrent 多线程框架 -
SINCE1978:
你也关注并发啊
java.util.concurrent 多线程框架 -
lku1314:
这个不错 刚刚找到这个组建 以前孤陋寡闻了 像lz学习!标 ...
quartz 在WEB中应用小结 -
lliiqiang:
人们对于目标需要的需求明确的去做,对于目标以外的因素是随机的执 ...
flex和后端的数据交互(一)--XML和HTTPService
前天给别的项目组帮忙,做一个给图片添加指定字符的例子;网上这方面的资料不多,好不容易在sun的官方网站上找到一点资料(http://java.sun.com/docs/books/tutorial/2d/images/index.html),可是说的也不全面,偶只好参照JDK和这点资料搞了一个例子!
主要代码如下:
这也只是java.awt.Graphics2D的简单应用,感兴趣的网友可以参考JDK学习Graphics2D的应用,估计我们登陆时的验证图片就是用程序生成的,并且绑定了数字签名!
主要代码如下:
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; private Font font = null;// 添加字体的属性设置 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, "gif", 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.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 (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.awt.Graphics2D的简单应用,感兴趣的网友可以参考JDK学习Graphics2D的应用,估计我们登陆时的验证图片就是用程序生成的,并且绑定了数字签名!
发表评论
-
ubuntu14.04下编译安装Tora
2015-08-11 16:19 1210需预先安装oracle客户端;以下类库,有的可能需要提前安 ... -
ubuntu14.04下oracle客户端最小化安装
2015-08-11 16:04 1058在Oracle官网下载Oracle Instant Clien ... -
ubuntu14.04下编译安装QT
2015-08-11 16:03 15051. 首先配置一些编译Qt ... -
55种开源可视化数据分析工具
2015-07-22 14:50 0http://mp.weixin.qq.com/s?__bi ... -
响应式设计理念
2013-09-29 10:00 0概念 响应式Web设计(Responsive Web desi ... -
Liferay 使用随笔
2010-04-19 14:18 01.如何根据权限去除每一个portlet中右上角的选项。 关于 ... -
Liferay中ajax应用用户session超时
2010-03-26 09:31 3920基于Liferay Portal开发ajax应用时,如果长时间 ... -
Liferay portlet实例化配置
2009-11-10 09:06 4375在默认的情况下,一个p ... -
带checkbox的dhtmlxtree菜单树异步加载时的问题解决
2009-10-24 11:27 5973最近一直很忙,自己负责几个模块的设计开发,还有和其他服务接口的 ... -
JS代码示例
2009-10-21 14:23 22821.数组操作时的push var a = [],b = [ ... -
dhtmlxtree异步加载时的一个bug修正
2009-09-15 10:00 3808前面已经对dhtmlx的东西有所介绍,使用中也发现了不少bug ... -
WEB Page to PDF
2009-06-17 11:10 2549现在有很多网页页面转换成PDF文档的支持项目,我使用的是pd4 ... -
Liferay中使用dhtmlxlayout在IE下的问题
2009-06-12 13:43 2098Liferay 中使用dhemtlx系列UI的时候,dhtml ... -
Liferay相关配置
2009-06-10 13:35 1259修改liferay中portlet的加载目录 前面 ... -
Spring JDBC对Oracle10g数据库操作时RowSet的问题
2009-05-19 08:56 3474使用Spring JDBC对Oracle10g进行数据库分页的 ... -
Dynamic Tables In JavaScript for IE and Firefox
2009-05-06 14:03 1713http://www.sweetvision.com/2007 ... -
liferay中对struts桥接处理后的response
2009-04-18 14:29 1837对于在liferay开发平台中 ... -
liferay开发小记---Struts,Spring,Hibernate架构
2009-04-07 11:11 6268liferay有自己的struts和spring扩展,有兴趣的 ... -
liferay开发小记---portlet文件构造
2009-04-03 17:09 3285书接上回,说说portlet的开发,每一个portlet就是对 ... -
liferay开发小记---开发环境的搭建
2009-04-02 13:42 3806用惯了MyEclipse,我的环境也是在它上面搭建的,试用过M ...
相关推荐
1. **动态加载和修改属性**:除了基本的加载和保存属性文件,该库允许在运行时动态地添加、修改或删除属性,无需每次都重新加载整个文件。 2. **类型转换**:默认的`Properties`类只能处理字符串类型的属性,但`...
Java开发工具包(Java Development Kit,简称JDK)是Java编程语言的核心组件,它提供了运行和开发Java应用程序所需的所有工具。OpenJDK是JDK的一个开源实现,由全球开发者社区维护,而Oracle JDK则是官方商业版本。...
在Java中,属性文件通常用于存储配置信息,如数据库连接字符串、系统参数等。`java-property-utils` 提供了方便的方法来读取、写入和操作这些文件,支持更灵活的属性管理和国际化。这个库在 ArcGIS Server 10.2 中...
在Java编程中,`String`类作为最基础的字符串处理工具,一旦创建,其内容便不可更改,这主要是为了确保数据的不变性(Immutability)。然而,当遇到需要频繁修改字符串内容的场景时,`StringBuffer`类便显得尤为重要...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
OpenJDK 是 Java Development Kit (JDK) 的一个实现,遵循 GNU General Public License (GPLv2) 许可协议,允许开发者自由使用、修改和分发代码。这个压缩包包含了两个 RPM(Red Hat Package Manager)文件,适用于 ...
通过以上分析,我们可以看到,在Java中进行字符编码转换是一项基本而重要的任务。理解并掌握不同的编码方式及其转换方法对于开发高质量的应用程序至关重要。本文通过对给定示例代码的分析,展示了如何在Java程序中...
根据给定的文件信息,我们可以总结出一系列关于Java编程语言的重要知识点,这些知识点不仅涵盖了基本的语法和概念,还深入到了面向对象编程的核心原理。以下是详细的解析: ### 1. 文档注释与Javadoc - **知识点:...
在Java编程语言中,给图片叠加字符或水印是一项常见的图像处理任务,广泛应用于版权保护、品牌宣传等领域。本文将详细解析如何通过Java实现这一功能,主要基于提供的`WaterMarkDemo.java`源码进行讲解。 首先,我们...
总之,JAVA生成图片验证码是结合了图像处理、字符串操作和随机数生成等多方面知识的一项实用技能,它在许多Web应用中都有广泛的应用。通过学习和实践,你不仅可以提升JAVA编程能力,还能增强对网络安全的理解。
1. 对于CORS Filter,需要将其添加到Web应用的部署描述符(web.xml)中,并根据需求配置相应的CORS策略。 2. 使用Java Property Utils时,要确保正确加载属性文件,并理解如何处理异常,如文件不存在或格式错误。 3....
9. **面向对象设计**:在设计通讯录功能时,可能会有一个Contact类来表示联系人,包含姓名、电话、邮箱等属性,以及添加、删除、修改等方法。 10. **测试**:一个完整的项目应该包括单元测试和集成测试,确保每个...
总的来说,这个练习项目不仅涵盖了Java字符流的基本用法,还涉及到了文件操作、数据结构、算法应用以及异常处理等多个方面的知识,是学习和实践Java IO系统的一个很好的实例。通过这个项目,开发者可以深入理解字符...
5. **可移植性:** Java程序可以在任何支持Java的平台上运行,无需修改。 6. **高性能:** Java虚拟机(JVM)通过即时编译(JIT)技术提高程序的执行速度。 7. **多线程:** Java内置对多线程的支持,简化了并发程序的...
### JAVA删除字符实验知识点 #### 实验目标 本实验旨在通过编写一个Java Applet程序,实现用户输入一段字符串以及一个特定字符,然后程序能够移除该字符串中所有的指定字符,并输出处理后的结果。 #### 实验环境 -...
1. java.lang:提供了基本的语言功能,例如字符串、数组、数学运算等。 2. java.util:提供了实用工具类,例如集合、日期、格式化等。 3. java.io:提供了输入/输出操作的类,例如文件、流、socket等。 4. java.net...
Java开发工具包(Java Development Kit,简称JDK)是用于编写、编译和运行Java应用程序的重要软件包。这里我们关注的是JDK 11的Linux版本,文件名为"jdk-11.0.2_linux-x64_bin.tar.zip"。JDK 11是Java的一个重大版本...