在现在的开发中,图片的表现形式也是越来越多,随之而来的是图片的版权的问题,所以,不少的网站将自己的图片在上传的时候,打上专有的水印(如左图)。而作为图片的预览,需要有对应的适合大小的缩略图。以前在写一个blog的时候,用到了一个很好用的包,是一个外国人写的。
首先,下载ij.jar(本站提供下载,将ij.jar.rar改为ij.jar即可),同时,我将两个重要的操作类的源码提取出来了,方便大家参考。
我的这个文件的作用是从我的pc论坛上将图片取下来,然后修改成对应的小图片,提供給手机用户浏览(wap)。要做成什么效果,打什么水印,什么大小,在代码做对应的配置即可,也可以把这些抽取出来,形成一个properties文件。
- **
- * @author
- * @company leemenz (C) copyright
- * @time 2006-8-23 15:18:01
- * @version 1.0.0.0
- * @package com.xxx.tools
- */
- package com.xxx.imageDeal;
- import ij.ImagePlus;
- import ij.io.Opener;
- import ij.process.ImageProcessor;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.image.BufferedImage;
- import java.io.DataInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.net.HttpURLConnection;
- import java.net.InetAddress;
- import java.net.MalformedURLException;
- import java.net.URL;
- import com.sun.image.codec.jpeg.JPEGCodec;
- import com.sun.image.codec.jpeg.JPEGEncodeParam;
- import com.sun.image.codec.jpeg.JPEGImageEncoder;
- import com.xxx.database.SqlHelper;
- import com.xxx.util.Constants;
- import com.xxx.util.Tools;
- public class ImageTool {
- /**
- * 对远程图片的处理(下载到本地,缩小操作等)
- *
- * @author 李国庆
- * @param urlpic
- * 图片的URL地址 列如:http://ggbm.programfan.com/images/11145416530.gif
- * @param rootid
- * 论坛主贴ID
- */
- public static void getPic(String urlpic, String rootid) {
- // //在图片关系表中确定原始URL与自己网站上URL的对应关系,关系存在则从WAP_HSOL_RELATION表//
- // //中读图片信息,关系不存在则继续执行图片下载和缩小操作
- if (getRelation(urlpic) || judgeUrl(urlpic)) {
- return;
- }
- // //
- String first = urlpic.substring(7);
- int end = first.indexOf("/");
- String urlp = first.substring(end + 1);
- int index = urlp.lastIndexOf("/");
- String smallFileName = "/picpath/" + urlp.substring(0, index + 1)
- + "small" + urlp.substring(index + 1); // 得到下载到本地的图片的URL
- // 图片的远程读入//
- HttpURLConnection urlCon = null;
- URL url = null;
- DataInputStream ir = null;
- String[] pp = anlizeUrl(urlpic);
- StringBuffer middle = new StringBuffer();
- for (int i = 0; i < pp.length - 1; i++) {
- middle.append(pp[i] + File.separatorChar);
- }
- Tools manage = new Tools();
- manage.createPath(Constants.OUTPUT_PICTURE_PATH + File.separatorChar
- + middle.toString());
- int last = urlpic.lastIndexOf("/");
- String str = urlpic.substring(last + 1);
- String newName = Constants.OUTPUT_PICTURE_PATH + File.separatorChar
- + middle.toString() + str;
- File newFile = new