- 浏览: 87027 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
z694571598:
set 在哪?
js实现Set,Map,List,Queue -
coolboy09:
java并发编程实战上有类似的例子。我有一个疑惑,现在提出来和 ...
高速缓存实现 -
znlyj:
我同样关注,怎么更新缓存?另外,如果我不想将计算结果放到进程内 ...
高速缓存实现 -
Terry_zzz:
很好, 总结的很全面 谢谢!
深入浅出设计模式之单态模式(singleton) -
supertianyi:
好文,学习了
精通js中的Array
在实际的项目开发中,有可能遇到对图片的操作,比如加水印,或是设置图片的大小,先转载一篇文章,以记录相关的操作:
如果对网络文件进行设置格式大小的话,代码如下:
import java.awt.*; import java.awt.image.*; import javax.imageio.ImageIO; import javax.imageio.ImageIO.*; import javax.imageio.IIOException; import java.io.*; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; import javax.servlet.http.HttpSession; // 图片操作,改变大小加水印***********@与羊共舞的狼 public class ImageOperate { /** * 给图片加水印,但不改变大小 * @param strOriginalFileName String(原始文件) * @param strWaterMarkFileName String(水印后) */ public void waterMark(String strOriginalFileName,String strWaterMarkFileName,HttpSession session){ try{ //源文件 String root=session.getServletContext().getRealPath("/"); File fileOriginal = new File(root+strOriginalFileName); Image imageOriginal = ImageIO.read(fileOriginal); int widthOriginal = imageOriginal.getWidth(null); int heightOriginal = imageOriginal.getHeight(null); System.out.println("widthOriginal:" + widthOriginal + "theightOriginal:" + heightOriginal); BufferedImage bufImage = new BufferedImage(widthOriginal,heightOriginal,BufferedImage.TYPE_INT_RGB); Graphics g = bufImage.createGraphics(); g.drawImage(imageOriginal,0,0,widthOriginal,heightOriginal,null); //水印文件 File fileWaterMark = new File(root+strWaterMarkFileName); Image imageWaterMark = ImageIO.read(fileWaterMark); int widthWaterMark = imageWaterMark.getWidth(null); int heightWaterMark = imageWaterMark.getHeight(null); System.out.println("widthWaterMark:" + widthWaterMark + "theightWaterMark:" + heightWaterMark); //水印文件在源文件的右下角 g.drawImage(imageWaterMark,widthOriginal - widthWaterMark,heightOriginal - heightWaterMark,widthWaterMark,heightWaterMark,null); g.dispose(); FileOutputStream fos = new FileOutputStream( root+strOriginalFileName); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fos); encoder.encode(bufImage); fos.flush(); fos.close(); fos = null; } catch(Exception e) { e.printStackTrace(); } } /** * 修改图片大小 */ public void alterSize(String srcImgFile,String addChar,int new_w,int new_h,HttpSession session){ //System.out.print("文件路径为:"+"//"+srcImgFile); String root=session.getServletContext().getRealPath("/"); java.io.File file=new java.io.File(root+srcImgFile); if(file.exists()) System.out.println("文件存在"); else System.out.println("文件不存在"); int i = srcImgFile.indexOf("."); int sLen = srcImgFile.length(); String suffix = srcImgFile.substring(i, sLen); //带点+后缀名 String urlName=srcImgFile.substring(0,i); //路径+文件名 String newUrlName=root+urlName+addChar+suffix; //System.out.print("新文件名为"+newUrlName); Image src=null; try { src = javax.imageio.ImageIO.read(file); java.awt.image.BufferedImage tag = new java.awt.image.BufferedImage(new_w,new_h,java.awt.image.BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); FileOutputStream newimage=new FileOutputStream(newUrlName); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage); encoder.encode(tag); //近JPEG编码 newimage.close(); } catch(IIOException ee) { ee.printStackTrace(); System.out.print("这里出错了"); } catch(Exception e) { e.printStackTrace(); } }//End sizeAlter }
如果对网络文件进行设置格式大小的话,代码如下:
java.io.File file = new java.io.File(srcImgFile); if (file.exists()) System.out.println("文件存在"); else System.out.println("文件不存在"); int i = srcImgFile.lastIndexOf("."); int sLen = srcImgFile.length(); String suffix = srcImgFile.substring(i, sLen); // 带点+后缀名 String urlName = srcImgFile.substring(0, i); // 路径+文件名 String newUrlName = "D:/" + addChar + suffix; // System.out.print("新文件名为"+newUrlName); Image src = null; /** * 网络文件抓取同时设置其宽高 */ try { URL url = new URL(srcImgFile); HttpURLConnection urlcon = (HttpURLConnection) url.openConnection(); urlcon.connect(); src = javax.imageio.ImageIO.read(urlcon.getInputStream()); java.awt.image.BufferedImage tag = new java.awt.image.BufferedImage( new_w, new_h, java.awt.image.BufferedImage.TYPE_INT_RGB); tag.getGraphics().drawImage(src, 0, 0, new_w, new_h, null); FileOutputStream newimage = new FileOutputStream(newUrlName); JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage); encoder.encode(tag); //近JPEG编码 newimage.close(); } catch (IIOException ee) { ee.printStackTrace(); System.out.print("这里出错了"); } catch (Exception e) { e.printStackTrace(); }
发表评论
-
Maven2 POM.xml 配置元素详解
2011-06-16 08:56 1397<!--可以免费转载,转载时请注明出处 http:// ... -
深入浅出URL编码
2010-12-24 09:35 912一、问题: 编码问题是JAVA初学者在web开 ... -
mysql自动关闭服务、连接限制等问题的解决方法
2010-11-22 09:36 3012通过mysql服务器端程序mysql Administrato ... -
高速缓存实现
2010-06-08 10:39 3943各位大虾,本人实现 ... -
Java开发中文件上传应用
2010-05-15 23:54 1134今天闲暇无所事事,很长时间没有写博客了,突然想起很多开发 ... -
Java ClassLoader 详解
2010-03-23 12:33 1070类加载器是 Java 语言的一个创新,也是 Java 语言流行 ... -
Java垃圾回收机制和性能调优
2010-01-29 12:40 8561.JVM的gc概述 g ... -
Java编码问题
2009-11-25 16:36 714乱码对于使用非英语文 ... -
JDK+Tomcat +eclipse+MyEclipse的配置
2009-11-16 14:48 1150说一下关于JDK+Tomcat +ecli ... -
Java图片水印处理
2009-10-30 13:28 1533import java.awt.AlphaComposite; ... -
Java正则表达式的解释说明
2009-10-28 18:18 684表达式意义: 1.字符 x ... -
Freemarker语法
2009-10-21 15:29 771常用语法 EG.一个对象BOOK 1.输出 $…{book.n ... -
Servlet的两种跳转区别
2009-10-19 13:46 1250在servlet中,一般跳转都 ... -
Berkeley DB实例
2009-10-15 09:49 1301package test; import com.sleep ... -
Berkeley DB使用说明
2009-10-14 18:32 1746关键字: berkeley db java edi ... -
Tomcat配置详解
2009-09-29 11:44 944第一步:下载j2sdk和tomcat 到sun官方站(htt ... -
URLConnection的连接、超时、关闭用法总结
2009-09-10 12:57 1767ava中可以使用HttpURLConnection来请求WEB ... -
时间操作工具类
2009-09-09 14:27 3186在项目开发工程中,使用了很多时间的操作,改工具类提供了很 ... -
操作抓取网络资源
2009-09-08 12:57 842在实际开发过程中,大家难免遇到抓取网络资源的操作,列如:抓 ... -
java中操作Excel
2009-09-08 12:49 1037在企业级开发中,经常遇到读写excel的操作,在此将一些 ...
相关推荐
struts2 上传 java 图片水印 改变图片大小
java 水印(水印适应图片大小,但个别图片太小不支持)
java 处理图片大小等比例缩放;图片裁剪;支持图片压缩不失真;支持图片添加水印;支持动态图的处理;支持自定义图片大小的转换 等 压缩包中内附使用说明
光影魔术手非常合适处理那些,基础的图片调整需求。比如,简单加个水印、裁剪图片尺寸大小、照片排版、设置边框模版等。特别是对于不太会Photo...这能让我们告别很多重复劳动,实现一键批量裁剪图片、批量加水印等。
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...
工作中可能经常需要对图片做一些调整大小的操作,这里我们用Java实现一个方法,将图片按照比例缩放至原来的80%,你可以稍微改动一下这个方法,让图片可以任意比例缩放。准备一张图片,并命名为test.png,并将图片放...
内置图片的剪切、自动对比度、手动对比度等功能,让图片处理、加水印一步到位; 支持水印透明度和旋转角度的任意调整,加注效果更理想; 支持精确定位、平铺和填充等三种模式的水印加注方式。 用户不仅可以自定义...
1、生成PDF文件 2、支持中文字体 3、PDF文件内容为表格,表格有表头 ...10、PDF文件增加文字或图片水印功能,要求文字或图片在整个页面清晰可见。增加的水印信息不能使PDF文件大小增长超过5%。 11、对PDF文件进行加密
SIET是简单图像编辑(编辑器)工具,它是易于使用,方便且免费的应用程序,可用于诸如调整大小,裁剪,修饰,加水印等任务。还提供批处理。 因为是以解释性语言编写的与操作系统无关的,所以SIET可以在具有Java...