【Jsp精品源码栏目提醒】:网学会员为需要Jsp精品源码的朋友们搜集整理了【精品文档】java jsp 图片处理,水印,缩放,放大,叠加等功能 - 其它管理文献相关资料,希望对各位网友有所帮助!
这几天一直在做图片处理其中遇到了一些问题在网上也找到了解决办法虽然不是最佳的在这里还是作个记录吧。
1 多张jpg图合成gif动画 / 把多张jpg图片合成一张 param pic String 多个jpg文件名 包含路径 param newPic String 生成的gif文件名 包含路径 / private synchronized void jpgToGifString pic String newPic try AnimatedGifEncoder e new AnimatedGifEncoder //网上可以找到此类 e.setRepeat0 e.startnewPic BufferedImage src new BufferedImagepic.length for int i 0 i lt src.length i e.setDelay200 //设置播放的延迟时间 srci ImageIO.readnew Filepici // 读入需要播放的jpg文件 e.addFramesrci //添加到帧中 e.finish catch Exception e System.out.println quotjpgToGif Failed:quot e.printStackTrace 2 gif动画分解成多张jpg / 把gif图片按帧拆分成jpg图片 param gifName String 小gif图片路径名称 param path String 生成小jpg图片的路径 return String 返回生成小jpg图片的名称 / private synchronized String splitGifString gifNameString path try GifDecoder decoder new GifDecoder decoder.readgifName int n decoder.getFrameCount //得到frame的个数 String subPic new Stringn String tag this.getTag for int i 0 i lt n i BufferedImage frame decoder.getFramei //得到帧 //int delay decoder.getDelayi //得到延迟时间 //生成小的JPG文件 subPici path String.valuei quot.jpgquot FileOutputStream out new FileOutputStreamsubPici ImageIO.writeframe quotjpegquot out JPEGImageEncoder encoder JPEGCodec.createJPEGEncoderout encoder.encodeframe //存盘 out.flush out.close return subPic catch Exception e System.out.println quotsplitGif Failedquot e.printStackTrace return null 3 根据提供的文字生成jpg图片 / 根据提供的文字生成jpg图片 param s String 文字 param smallWidth int 每个字的宽度和高度是一样的 param bgcolor Color 背景色 param fontcolor Color 字色 param fontPath String 字体文件 param jpgname String jpg图片名 return / private String createJpgByFontString s int smallWidthColor bgcolorColor fontcolorString fontPathString jpgname try //宽度 高度 BufferedImage bimage new BufferedImages.lengthsmallWidth smallWidthBufferedImage.TYPE_INT_RGB Graphics2D g bimage.createGraphics g.setColorbgcolor //背景色 g.fillRect0 0 smallWidth smallWidth //画一个矩形 g.setRenderingHintRenderingHints.KEY_ANTIALIASINGRenderingHints.VALUE_ANTIALIAS_ON //去除锯齿当设置的字体过大的时候会出现锯齿 g.setColorfontcolor //字的颜色 File file new FilefontPath //字体文件 Font font Font.createFontFont.TRUETYPE_FONT file //根据字体文件所在位置创建新的字体对象此语句在jdk1.5下面才支持 g.setFontfont.deriveFontfloat smallWidth //font.deriveFontfloat f复制当前 Font 对象并应用新设置字体的大小 g.drawStrings0 smallWidth //在指定坐标除添加文字 g.dispose FileOutputStream out new FileOutputStreamjpgname //指定输出文件 JPEGImageEncoder encoder JPEGCodec.createJPEGEncoderout JPEGEncodeParam param encoder.getDefaultJPEGEncodeParambimage param.setQuality50f true encoder.encodebimage param //存盘 out.flush out.close catch Exception e System.out.println quotcreateJpgByFont Failedquot e.printStackTrace 4 多张小jpg图合成一张大JPG图在这里对大图只作宽度限制不做高度限制 / 将多个小图片合成一张大jpg图 小的jpg图片按照行列顺序平铺 param smal