Java实现给网站上传图片盖章的方法
程序员文章站
2024-03-05 20:54:49
本文实例讲述了java实现给网站上传图片盖章的方法。分享给大家供大家参考。具体如下:
最近无聊,上了一会校友录,觉的校友录的图片都会加入一个章,呵呵,自己也就做了一个,不...
本文实例讲述了java实现给网站上传图片盖章的方法。分享给大家供大家参考。具体如下:
最近无聊,上了一会校友录,觉的校友录的图片都会加入一个章,呵呵,自己也就做了一个,不过只适合jpg格式。发出来给大家研究研究。欢迎讨论!
很老的代码了
/************************************************ * <p>java对图片的操作(只能使用jpg)</p> * 对图片的签章<br> * 对图片的缩图<br> * <p>title:java对图片的操作(只能使用jpg)</p> * <p>createdata: 2004-12-2</p> * <p>description:</p> * <p>copyright: copyright (c) 2004</p> * @author 王凯 * @version 1.0 ***********************************************/ package com.cn.wangk.test; import java.io.*; import com.sun.image.codec.jpeg.*;//sun公司仅提供了jpg图片文件的编码api import java.awt.font; import java.awt.graphics; import java.awt.image; import java.awt.geom.affinetransform; import java.awt.image.affinetransformop; import java.awt.image.bufferedimage; import java.awt.image.imageobserver; import javax.imageio.imageio; /** * @author wangkai */ public class test { /** * */ public test() { try { //生成以后新的图片地址 file fo = new file("c:\\4.jpg"); //读取的图片文件 string imagepath = "c:\\documents and settings\\administrator" + "\\my documents\\my pictures\\1.jpg"; //盖章的图片文件 string toimagepth = "c:\\1.jpg"; //得到图片的文件流 inputstream imagein; imagein = new fileinputstream(new file(imagepath)); //得到输入的编码器,将文件流进行jpg格式编码 jpegimagedecoder decoder = jpegcodec.createjpegdecoder(imagein); //得到编码后的图片对象 bufferedimage image = decoder.decodeasbufferedimage(); graphics g = image.getgraphics(); try { inputstream imagein2 = null; imagein2 = new fileinputstream(new file(toimagepth)); //得到输入的编码器,将文件流进行jpg格式编码 jpegimagedecoder decoder2 = jpegcodec .createjpegdecoder(imagein2); //得到编码后的图片对象 bufferedimage image2 = decoder2.decodeasbufferedimage(); //加盖图片章 imageobserver obser = null; int x = image.getwidth() - image2.getwidth(); int y = image.getheight() - image2.getheight(); g.drawimage(image2, x, y, obser); } catch (filenotfoundexception e) { //打开文件失败,表示章图片不存在,这时候直接加盖文件章(签名) g.setfont(new font("宋体", font.plain, 18)); g.drawstring("秋水工作室", image.getwidth() - 100, image.getheight() - 20); g.drawstring("water_wang@xs.zj.cn", image.getwidth() - 180, image.getheight() - 10); } g.dispose(); imageio.write(image, "jpeg", fo); system.out.println("ok"); } catch (filenotfoundexception e) { // 自动生成 catch 块 e.printstacktrace(); } catch (imageformatexception e) { // 自动生成 catch 块 e.printstacktrace(); } catch (ioexception e) { // 自动生成 catch 块 e.printstacktrace(); } } public static void savefixedboundicon(file imagefile, int height, int width) throws exception { double ratio = 0.0; if (imagefile == null || !imagefile.isfile()) throw new exception(imagefile + "找不到指定的文件!"); string filepath = imagefile.getpath(); bufferedimage bi = imageio.read(imagefile); if ((bi.getheight() > height) || (bi.getwidth() > width)) { if (bi.getheight() > bi.getwidth()) { ratio = (new integer(height)).doublevalue() / bi.getheight(); } else { ratio = (new integer(width)).doublevalue() / bi.getwidth(); } file savefile = new file(filepath + "_" + height + "_" + width + ".jpg"); image itemp = bi.getscaledinstance(width, height, image.scale_smooth); affinetransformop op = new affinetransformop(affinetransform .getscaleinstance(ratio, ratio), null); itemp = op.filter(bi, null); try { imageio.write((bufferedimage) itemp, "jpeg", savefile); } catch (exception ex) { } } } public static void main(string[] args) { // test ts = new test(); try { test.savefixedboundicon(new file( "c:\\test.jpg"), 200, 200); } catch (exception e) { // 自动生成 catch 块 e.printstacktrace(); } } }
希望本文所述对大家的java程序设计有所帮助。