JAVA 在图像处理中的应用
相信大家平时碰到过一些在JAVA中对图像进行处理的需求,比如需要对上传的图片加上自己的签名或图标,或者生成和解析动态的GIF图片,以及处理PSD文件图像信息。本文就JAVA在图像处理中一些基本应用进行了介绍。希望通过能够对大家在以后的图像处理中有些帮助。
一、对一个现有的图片进行文字和图标的合成
我们先从下面的这段简单的代码开始
import java.awt.*;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.*;
/**
* @author Anders.Hu
* 2005-01-12
*/
public class Test {
public static void main(String[] args) {
try {
//读取模板图片内容
BufferedImage image = ImageIO.read(new FileInputStream("c:\\1.jpg"));
Graphics2D g = image.createGraphics();//得到图形上下文
g.setColor(Color.BLACK); //设置画笔颜色
//设置字体
g.setFont(new Font("宋体", Font.LAYOUT_LEFT_TO_RIGHT, 15));//写入签名
g.drawString("很好吃诶,要不要也来一口?",43, image.getHeight() - 10);
g.dispose();
FileOutputStream out = new FileOutputStream("c:\\2.jpg");
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
相信大家看到这里已经知道了大致的操作过程,我想我还是在这里把基本的原理简单说明一下便于对后续内容的阐述:首先我们通过javax.imageio.ImageIO的read方法读取图像在BufferedImage中,然后我们可以通过BufferedImage的createGraphics方法取得图像的上下文便于对图像的处理,如加上自己喜爱的文字或图片等,最后调用JPEGCodec的encode方法进行JPEG编码,然后就是保存到文件中了。
这就是我运行上面代码的结果
需要提出的是JPEGCodec是非标准类,如果程序是运行JDK1.4以上版本的话,可以采取以下代码进行JPEG编码ImageIO.write(image, "JPEG", out);
可能在你的实际需求还要加入一些图标的修饰,要做到这一步,我们只需要在上面的代码中利用Graphics2D的drawImage方法做到。下面是加入图标的代码
public static void main(String[] args) {
try {
BufferedImage image = ImageIO.read(new FileInputStream("c:\\1.jpg"));
//读取图标
BufferedImage image_biao = ImageIO.read(new FileInputStream("c:\\i.jpg"));
Graphics2D g = image.createGraphics();
g.setColor
相关文档:
strictfp 关键字
可能很多人都没有用过这个关键字,如果很多人用那标题也显得没什么意义了。
首先看两段很简单的代码:
public static void main(String[] args){
double w = 7*8/3;
System.out.println(w);
}
public static strictfp void main(String[] args){
double w = 7*8/3;
System.out.println(w);
......
采用UDP的通讯方式,调用java自带的awt打印接口
服务器端代码
Server:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class Server
{
private DatagramSocket server;
private DatagramPacket packet;
......
public static Object getCloneObject(Object bean) {
Object cloneBean = null;
try {
ByteArrayOutputStream byout = new ByteArrayOutputStream();
ObjectOutputStream obj = new ObjectOutputStream(byout);
obj.writeObject(bean);
ByteArrayInputStream byin = new ByteArrayInputStream(byou ......
一、使浏览器不缓存页面的过滤器
import javax.servlet.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* 用于的使 Browser 不 ......
文章转自:比特网
本文链接:http://news.chinabyte.com/303/9117803.shtml
Java报表软件应用在java应用项目中,能嵌入式的将java报表工具部署到java应用中,能共享应用服务器连接池,利用应用服务负责均衡和集群特性。因 ......