- 浏览: 932265 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (423)
- mysql (37)
- hibernate (3)
- struts (9)
- spring (33)
- dom4j (2)
- junit (0)
- exception (1)
- 随笔杂谈 (12)
- google app engine (1)
- XMPP (1)
- OAuth安全授权 (1)
- 版本控制 (8)
- 心情感悟 (0)
- core java (19)
- log4j (7)
- jquery (12)
- javascript (10)
- 网站性能优化及工具 (11)
- 服务器架设配置等 (38)
- EXT (4)
- 正则表达式 (5)
- 日志统计分析 (2)
- htmlparse (4)
- httpclient (5)
- java随笔 (5)
- dhtmlxtree (1)
- freemarke (5)
- memcached (6)
- javamail (5)
- Linux命令 (10)
- 应用监控cpu web jdbc等 (4)
- jmagick (9)
- 第三方缓存策略 (9)
- ORM (2)
- hadoop (2)
- 大数据量处理 (8)
- 经典 (1)
- 权限设计 (1)
- andriod (1)
- mybatis (12)
- redis (24)
- 数据结构_算法 (5)
- 分布式系统 (1)
- php (1)
- 网络编程 (3)
- 服务器部署 (3)
- ios (2)
- IM (23)
- mina (1)
- 视讯和语音 (1)
- 代码生成 (1)
- 架构 (4)
- 建模工具 (1)
- oracle (4)
- solr (10)
- 构建工具 (7)
- html5 (1)
- nginx (5)
- css (1)
- 大数据-分布式 (2)
- 设计模式 (2)
- mq (2)
- jvm调优 (8)
- 并发编程 (2)
- 搜索引擎 (1)
- UML (2)
最新评论
-
天使建站:
jquery获取网页里多选框checkbox选中项的值的方法及 ...
JS jQuery分别获取选中的复选框值 -
abao1:
发现一个小问题 sortAndSave方法中的for循环 第二 ...
完整java实现外部排序 -
西巴拉古呀那:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
消息系统kafka介绍 -
kafodaote:
Kafka分布式消息系统实战(与JavaScalaHadoop ...
消息系统kafka介绍 -
成大大的:
Kafka分布式消息系统实 ...
消息系统kafka介绍
对图片进行缩放剪切
Java代码
- public String cut()
- {
- String fileName = getRequest().getParameter("fileName" ); //图片路径+图片名称
- String txt_width = getRequest().getParameter("txt_width" ); //缩放后宽
- String txt_height = getRequest().getParameter("txt_height" ); //缩放后高
- String txt_top = getRequest().getParameter("txt_top" ); //x坐标
- String txt_left = getRequest().getParameter("txt_left" ); //y坐标
- String txt_DropWidth = getRequest().getParameter("txt_DropWidth" ); //剪切宽
- String txt_DropHeight = getRequest().getParameter("txt_DropHeight" ); //剪切高
- String filePath = getRequest().getSession().getServletContext().getRealPath("/" )+ "attachFiles\\" +fileName;
- String cutFilePath = getRequest().getSession().getServletContext().getRealPath("/" )+ "attachFiles\\cut\\" +fileName;
- File fileList = new File(getRequest().getSession().getServletContext().getRealPath( "/" )+ "attachFiles\\cut\\" );
- if (!fileList.exists())
- {
- fileList.mkdirs();
- }
- try {
- System.setProperty("jmagick.systemclassloader" , "no" );
- ImageInfo info = new ImageInfo(filePath);
- MagickImage image = new MagickImage(info);
- MagickImage cropped = null ;
- MagickImage scaleImg = image.scaleImage(Integer.valueOf(txt_width), Integer.valueOf(txt_height));//缩放图片
- Rectangle rect = new Rectangle (Integer.valueOf(txt_left),Integer.valueOf(txt_top),Integer.valueOf(txt_DropWidth),Integer.valueOf(txt_DropHeight));
- cropped = scaleImg.cropImage(rect);//剪切图片
- cropped.setFileName(cutFilePath);
- cropped .writeImage(info);
- getRequest().setAttribute("cutImagePath" , getRequest().getContextPath()+ "/attachFiles/cut/" +fileName);
- } catch (MagickException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return "cut" ;
- }
public String cut() { String fileName = getRequest().getParameter("fileName");//图片路径+图片名称 String txt_width = getRequest().getParameter("txt_width");//缩放后宽 String txt_height = getRequest().getParameter("txt_height");//缩放后高 String txt_top = getRequest().getParameter("txt_top");//x坐标 String txt_left = getRequest().getParameter("txt_left");//y坐标 String txt_DropWidth = getRequest().getParameter("txt_DropWidth");//剪切宽 String txt_DropHeight = getRequest().getParameter("txt_DropHeight");//剪切高 String filePath = getRequest().getSession().getServletContext().getRealPath("/")+"attachFiles\\"+fileName; String cutFilePath = getRequest().getSession().getServletContext().getRealPath("/")+"attachFiles\\cut\\"+fileName; File fileList = new File(getRequest().getSession().getServletContext().getRealPath("/")+"attachFiles\\cut\\"); if(!fileList.exists()) { fileList.mkdirs(); } try { System.setProperty("jmagick.systemclassloader","no"); ImageInfo info = new ImageInfo(filePath); MagickImage image = new MagickImage(info); MagickImage cropped = null; MagickImage scaleImg = image.scaleImage(Integer.valueOf(txt_width), Integer.valueOf(txt_height));//缩放图片 Rectangle rect = new Rectangle (Integer.valueOf(txt_left),Integer.valueOf(txt_top),Integer.valueOf(txt_DropWidth),Integer.valueOf(txt_DropHeight)); cropped = scaleImg.cropImage(rect);//剪切图片 cropped.setFileName(cutFilePath); cropped .writeImage(info); getRequest().setAttribute("cutImagePath", getRequest().getContextPath()+"/attachFiles/cut/"+fileName); } catch (MagickException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "cut"; }
对图片进行缩放剪切并添加水印
Java代码
- public String watermark()
- {
- String fileName = getRequest().getParameter("fileName" ); //图片路径+名字
- String logoFileName = getRequest().getParameter("logoFileName" ); //水印图片历经+名字
- Integer txt_width = Integer.valueOf(getRequest().getParameter("txt_width" )); //缩放后宽
- Integer txt_height = Integer.valueOf(getRequest().getParameter("txt_height" )); //缩放后高
- Integer txt_top = Integer.valueOf(getRequest().getParameter("txt_top" )); //x坐标
- Integer txt_left = Integer.valueOf(getRequest().getParameter("txt_left" )); //y坐标
- Integer txt_DropWidth = Integer.valueOf(getRequest().getParameter("txt_DropWidth" )); //剪切宽度
- Integer txt_DropHeight = Integer.valueOf(getRequest().getParameter("txt_DropHeight" )); //剪切高度
- String filePath = getRequest().getSession().getServletContext().getRealPath("/" )+ "attachFiles\\" +fileName;
- String logoImagPath = getRequest().getSession().getServletContext().getRealPath("/" )+ "attachFiles\\logo\\" +logoFileName;
- String flag = getRequest().getParameter("flag" );
- String cutFilePath = getRequest().getSession().getServletContext().getRealPath("/" )+ "attachFiles\\cut\\" +fileName;
- File fileList = new File(getRequest().getSession().getServletContext().getRealPath( "/" )+ "attachFiles\\cut\\" );
- if (!fileList.exists())
- {
- fileList.mkdirs();
- }
- try {
- System.setProperty("jmagick.systemclassloader" , "no" );
- ImageInfo info = new ImageInfo(filePath);
- MagickImage image = new MagickImage(info);
- MagickImage cropped = null ;
- MagickImage fLogo = null ;
- MagickImage sLogo = null ;
- Dimension logoDim = null ;
- MagickImage scaleImg = image.scaleImage(txt_width, txt_height);
- Rectangle rect = new Rectangle (txt_left,txt_top,txt_DropWidth,txt_DropHeight);
- cropped = scaleImg.cropImage(rect);
- fLogo = new MagickImage( new ImageInfo(logoImagPath));
- logoDim = fLogo.getDimension();
- int lw = txt_DropWidth / 4 ;
- int lh = logoDim.height * lw / logoDim.width;
- sLogo = fLogo.scaleImage(lw, lh);
- //水印出现在左上方
- if (flag.equals( "leftTop" ))
- {
- cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo,
- lh / 10 , lh / 10 );
- }
- else if (flag.equals( "rightTop" ))
- {
- cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo,
- txt_DropWidth - (lw + lh / 10 ), lh / 10 );
- }
- else if (flag.equals( "middle" ))
- {
- cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo,
- (txt_DropWidth - lw)/2 , (txt_DropHeight-lh)/ 2 );
- }
- else if (flag.equals( "leftBottom" ))
- {
- cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo,
- lh / 10 , txt_DropHeight - (lh + lh / 10 ));
- }
- else
- {
- cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo,
- txt_DropWidth - (lw + lh / 10 ), txt_DropHeight - (lh + lh / 10 ));
- }
- cropped.setFileName(cutFilePath);
- cropped.writeImage(info);
- getRequest().setAttribute("cutImagePath" , getRequest().getContextPath()+ "/attachFiles/cut/" +fileName);
- } catch (MagickException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return "cut" ;
- }
public String watermark() { String fileName = getRequest().getParameter("fileName");//图片路径+名字 String logoFileName = getRequest().getParameter("logoFileName");//水印图片历经+名字 Integer txt_width = Integer.valueOf(getRequest().getParameter("txt_width"));//缩放后宽 Integer txt_height = Integer.valueOf(getRequest().getParameter("txt_height"));//缩放后高 Integer txt_top = Integer.valueOf(getRequest().getParameter("txt_top"));//x坐标 Integer txt_left = Integer.valueOf(getRequest().getParameter("txt_left"));//y坐标 Integer txt_DropWidth = Integer.valueOf(getRequest().getParameter("txt_DropWidth"));//剪切宽度 Integer txt_DropHeight = Integer.valueOf(getRequest().getParameter("txt_DropHeight"));//剪切高度 String filePath = getRequest().getSession().getServletContext().getRealPath("/")+"attachFiles\\"+fileName; String logoImagPath = getRequest().getSession().getServletContext().getRealPath("/")+"attachFiles\\logo\\"+logoFileName; String flag = getRequest().getParameter("flag"); String cutFilePath = getRequest().getSession().getServletContext().getRealPath("/")+"attachFiles\\cut\\"+fileName; File fileList = new File(getRequest().getSession().getServletContext().getRealPath("/")+"attachFiles\\cut\\"); if(!fileList.exists()) { fileList.mkdirs(); } try { System.setProperty("jmagick.systemclassloader","no"); ImageInfo info = new ImageInfo(filePath); MagickImage image = new MagickImage(info); MagickImage cropped = null; MagickImage fLogo = null; MagickImage sLogo = null; Dimension logoDim = null; MagickImage scaleImg = image.scaleImage(txt_width, txt_height); Rectangle rect = new Rectangle (txt_left,txt_top,txt_DropWidth,txt_DropHeight); cropped = scaleImg.cropImage(rect); fLogo = new MagickImage(new ImageInfo(logoImagPath)); logoDim = fLogo.getDimension(); int lw = txt_DropWidth / 4; int lh = logoDim.height * lw / logoDim.width; sLogo = fLogo.scaleImage(lw, lh); //水印出现在左上方 if(flag.equals("leftTop")) { cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo, lh / 10, lh / 10); } else if(flag.equals("rightTop")) { cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo, txt_DropWidth - (lw + lh / 10), lh / 10); } else if(flag.equals("middle")) { cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo, (txt_DropWidth - lw)/2, (txt_DropHeight-lh)/2); } else if(flag.equals("leftBottom")) { cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo, lh / 10, txt_DropHeight - (lh + lh / 10)); } else { cropped.compositeImage(CompositeOperator.AtopCompositeOp, sLogo, txt_DropWidth - (lw + lh / 10), txt_DropHeight - (lh + lh / 10)); } cropped.setFileName(cutFilePath); cropped.writeImage(info); getRequest().setAttribute("cutImagePath", getRequest().getContextPath()+"/attachFiles/cut/"+fileName); } catch (MagickException e) { // TODO Auto-generated catch block e.printStackTrace(); } return "cut"; }
锐化图片
Java代码
- //锐化
- public void sharpen(String filePath,String savePath)
- {
- ImageInfo info = null ;
- MagickImage image = null ;
- MagickImage sharpened = null ;
- try {
- info = new ImageInfo(filePath);
- image = new MagickImage(info);
- sharpened = image.sharpenImage(1.0 , 5.0 );
- sharpened.setFileName(savePath);
- sharpened.writeImage(info);
- } catch (MagickException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- finally {
- if (image != null ) {
- image.destroyImages();
- }
- }
- }
//锐化 public void sharpen(String filePath,String savePath) { ImageInfo info = null; MagickImage image = null; MagickImage sharpened = null; try { info = new ImageInfo(filePath); image = new MagickImage(info); sharpened = image.sharpenImage(1.0, 5.0); sharpened.setFileName(savePath); sharpened.writeImage(info); } catch (MagickException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (image != null) { image.destroyImages(); } } }
最后:不要忘了这句话
Java代码
-
System.setProperty(
"jmagick.systemclassloader"
,
"no"
);
发表评论
-
本次ImageMagick-jmagick安装过程记录
2013-03-07 16:11 1366首先,请先确保系统已 ... -
JMagick处理图片代码收集
2012-10-10 09:22 1751写在前面的话: 如果要在Web Application ... -
使用JMagick+ImageMagick处理图片
2012-09-30 20:52 1687一、ImageMagick介绍 ImageMagick是用C语 ... -
jmagick安装步骤
2011-03-05 12:45 1771安装说明: ========================= ... -
CentOS详细安装之十三:Linux安装ImageMagick与JMagick
2011-03-05 12:44 2025首先,请先确保系统已经安装以下包: 或者直接用以下命令安 ... -
Centos5安装JMagick
2011-03-05 12:42 1213在用JAVA自带处理图形的工具,效果不尽人意啊,听说JMagi ... -
linux下安装JMagick+memcached+livevent+tomcat+jdk
2011-02-17 13:32 1591http://hi.baidu.com/xinfeng999/ ... -
Linux下安装ImageMagick和Jmagick
2011-02-17 13:27 1810环境为:centos 5.4 x64:1、装LibPNG,安装 ...
相关推荐
里面包括jmagick 所需所有文件,jmagick.dll,jmagick.jar 还有安装文件, 以及linux安装说明! jmagick jmagick.jar jmagick资料 jmagick缩略图 jmagick jmagick.jar jmagick资料 jmagick缩略图
Jmagick32位的和Jmagick64位的Jmagick.dll,Jmagick.jar 图片处理必备工具
JMagick图片处理 缩略图 水印 切图 压缩图片
jmagick处理图片,图片高质量压缩,图片加水印。
压缩包在java下使用jmagick的所有必需工具和安装包,还有使用实例。
jmagick java 图像处理jmagick java 图像处理jmagick java 图像处理jmagick java 图像处理jmagick java 图像处理
jmagick.zip
jmagick.jar 及用法。。。。。。。。。。
jmagick-6.2.4-1-IM-6.2.5.zip
jmagick.jar java图像应用
jmagick image generate or operator library
强大的图片处理工具,imagemagick的java接口
JMagick-6.0.4-0.tar 下载
jmagick-win-6.3.9 java 图片裁剪工具
JMagick是一个开源API,利用JNI(Java Native Interface)技术实现了对 ImageMagick API的Java访问接口,因此也将比纯Java实现的图片操作函数在速度上要快。
压缩包在java下使用jmagick的所有必需工具和安装包,还有使用实例。
还在为找不到jar文件烦心吗,不用了到我空间来有你想要的,持续更新。。。 jmagick.jar
jmagick.jar,ImageMagick.exe,测试过,可用
java 图片放缩结束...防止内存泄露
ImageMagick-6.3.9+jmagick组合,此组合已测试通过