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程序设计有所帮助。