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王凯
*@version1.0
***********************************************/
packagecom.cn.wangk.test;
importjava.io.*;
importcom.sun.image.codec.jpeg.*;//sun公司仅提供了jpg图片文件的编码api
importjava.awt.Font;
importjava.awt.Graphics;
importjava.awt.Image;
importjava.awt.geom.AffineTransform;
importjava.awt.image.AffineTransformOp;
importjava.awt.image.BufferedImage;
importjava.awt.image.ImageObserver;
importjavax.imageio.ImageIO;
/**
*@authorwangkai
*/
publicclassTest{
/**
*
*/
publicTest(){
try{
//生成以后新的图片地址
Filefo=newFile("c:\\4.jpg");
//读取的图片文件
StringimagePath="C:\\DocumentsandSettings\\Administrator"
+"\\MyDocuments\\MyPictures\\1.jpg";
//盖章的图片文件
Stringtoimagepth="C:\\1.jpg";
//得到图片的文件流
InputStreamimageIn;
imageIn=newFileInputStream(newFile(imagePath));
//得到输入的编码器,将文件流进行jpg格式编码
JPEGImageDecoderdecoder=JPEGCodec.createJPEGDecoder(imageIn);
//得到编码后的图片对象
BufferedImageimage=decoder.decodeAsBufferedImage();
Graphicsg=image.getGraphics();
try{
InputStreamimageIn2=null;
imageIn2=newFileInputStream(newFile(toimagepth));
//得到输入的编码器,将文件流进行jpg格式编码
JPEGImageDecoderdecoder2=JPEGCodec
.createJPEGDecoder(imageIn2);
//得到编码后的图片对象
BufferedImageimage2=decoder2.decodeAsBufferedImage();
//加盖图片章
ImageObserverobser=null;
intx=image.getWidth()-image2.getWidth();
inty=image.getHeight()-image2.getHeight();
g.drawImage(image2,x,y,obser);
}catch(FileNotFoundExceptione){
//打开文件失败,表示章图片不存在,这时候直接加盖文件章(签名)
g.setFont(newFont("宋体",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(FileNotFoundExceptione){
//自动生成catch块
e.printStackTrace();
}catch(ImageFormatExceptione){
//自动生成catch块
e.printStackTrace();
}catch(IOExceptione){
//自动生成catch块
e.printStackTrace();
}
}
publicstaticvoidsaveFixedBoundIcon(FileimageFile,intheight,intwidth)
throwsException{
doubleRatio=0.0;
if(imageFile==null||!imageFile.isFile())
thrownewException(imageFile+"找不到指定的文件!");
StringfilePath=imageFile.getPath();
BufferedImageBi=ImageIO.read(imageFile);
if((Bi.getHeight()>height)||(Bi.getWidth()>width)){
if(Bi.getHeight()>Bi.getWidth()){
Ratio=(newInteger(height)).doubleValue()/Bi.getHeight();
}else{
Ratio=(newInteger(width)).doubleValue()/Bi.getWidth();
}
Filesavefile=newFile(filePath+"_"+height+"_"+width
+".jpg");
ImageItemp=Bi.getScaledInstance(width,height,
Image.SCALE_SMOOTH);
AffineTransformOpop=newAffineTransformOp(AffineTransform
.getScaleInstance(Ratio,Ratio),null);
Itemp=op.filter(Bi,null);
try{
ImageIO.write((BufferedImage)Itemp,"jpeg",savefile);
}catch(Exceptionex){
}
}
}
publicstaticvoidmain(String[]args){
//Testts=newTest();
try{
Test.saveFixedBoundIcon(newFile(
"C:\\test.jpg"),200,200);
}catch(Exceptione){
//自动生成catch块
e.printStackTrace();
}
}
}
希望本文所述对大家的java程序设计有所帮助。