面
继续单击图片,可进入图片编辑页面,如图1.7所示。在这里可为图片添加水印文字及删除图片。
图5-7 图片编辑页面
6 关键技术的实现
6.1动态操作上传表单
实现动态操作表单主要是通过JavaSrcipt脚本语言实现的,当用户单击"增加..."按钮时触发addMore()方法,该方法在JavaSrcipt脚本语言定义的代码如下:
6.2缩略图的生成
在相册管理模块中,相片资料的上传是必不可少的功能,但随着高分辨率相片的普及,上传图片的容量会很大,例如300万像素的相片文件大小基本上是大于600KB。在很多图片的网页中,图片容量越大打开网页的速度越慢。为了解决这个问题,用户上传图片时可以在类中处理一张大相片并缩小它。
将大相片进行缩小的代码如下:
public static void createSmallPhoto(String photoPath,String smallPath) {
File_file=newFile(photoPath); //读入文件
Image src;
try {
src=javax.imageio.ImageIO.read(_file);
int wideth=110;
intheight=80; BufferedImagetag=newBufferedImage(wideth,height,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,wideth,height,null); //绘制缩小后的图
ileOutputStreamout=newFileOutputStream(smallPath); //输出到文件流 JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(tag);
out.close();
}catch (IOException e){
e.printStackTrace();
}
}
在上述代码中,参数photoPath表示上传相片的地址,参数smallPath表示生成缩略相片的地址。在该方法中,首先将photoPath参数转换成Image对象src,构造目标文件tag,设置tag的长度和宽度,对tag进行编码,输出到文件流out,最后关闭文件流。
6.3相片水印效果
给图片加水印就是在图片加入指定文字。网页中的图片上面写着网站的名称和地址,添加文字的作用就是可以最大限度防止盗用,同时也起到标识相片的功能。本实例中,添加水印效果使用一个JavaBean的createMark()方法,该方法的具体实现代码如下:
Public static Boolean createMark(String filePath,String printPath,String markContent){
ImageIcon imgIcon=new ImageIcon (filePath); //读取源图片内容
Image theImg=imgIcon.getImage(); //读取图片的信息
int width=theImg.getWi