- 浏览: 950560 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 1411首先,请先确保系统已 ... -
JMagick处理图片代码收集
2012-10-10 09:22 1804写在前面的话: 如果要在Web Application ... -
使用JMagick+ImageMagick处理图片
2012-09-30 20:52 1729一、ImageMagick介绍 ImageMagick是用C语 ... -
jmagick安装步骤
2011-03-05 12:45 1821安装说明: ========================= ... -
CentOS详细安装之十三:Linux安装ImageMagick与JMagick
2011-03-05 12:44 2061首先,请先确保系统已经安装以下包: 或者直接用以下命令安 ... -
Centos5安装JMagick
2011-03-05 12:42 1245在用JAVA自带处理图形的工具,效果不尽人意啊,听说JMagi ... -
linux下安装JMagick+memcached+livevent+tomcat+jdk
2011-02-17 13:32 1622http://hi.baidu.com/xinfeng999/ ... -
Linux下安装ImageMagick和Jmagick
2011-02-17 13:27 1840环境为:centos 5.4 x64:1、装LibPNG,安装 ...
相关推荐
Jmagick广泛应用于图像的转换、裁剪、缩放、颜色调整、合成等多种操作。例如,一个Web应用可能使用Jmagick来动态生成缩略图,或者在上传图片时进行预处理,以确保符合规定的尺寸和格式。 总的来说,Jmagick提供了...
里面包括jmagick 所需所有文件,jmagick.dll,jmagick.jar 还有安装文件, 以及linux安装说明! jmagick jmagick.jar jmagick资料 jmagick缩略图 jmagick jmagick.jar jmagick资料 jmagick缩略图
6. 效果滤镜:JMagick提供了多种滤镜效果,如模糊、锐化、边框等,可以增强图像的艺术表现力。 7. 层次操作:支持图像的合并和分离,以及调整各层的透明度。 8. 文本添加:可以方便地在图像上添加文字,创建水印或...
2. **图像处理操作**:JMagick允许开发者进行一系列图像处理操作,如旋转、缩放、裁剪、调整颜色、添加边框、合并图像、模糊、锐化、颜色分离等。 3. **颜色空间转换**:支持RGB、CMYK、灰度、索引颜色等多种颜色...
3. **处理图像**:JMagick 提供了一系列方法来进行图像处理,如缩放、旋转、裁剪等。例如,`resizeImage()` 方法用于调整图像大小,`rotateImage()` 方法用于旋转图像,`cropImage()` 方法用于裁剪图像。 4. **保存...
JMagick允许开发者指定水印的位置、透明度、字体和颜色,以创建个性化的水印效果。 **切图**是指从原始图像中裁剪出特定区域,这在需要提取图片的某个部分或者制作特定尺寸的图片时非常有用。JMagick提供了精确的...
3. 图像颜色和滤镜效果:可以改变图像的色彩模式,添加各种滤镜效果,如模糊、锐化等。 4. 图像合成:支持多张图像的组合,如拼接、叠加等。 5. 文字和形状的添加:可以在图像上添加文字、线条、形状等元素。 6. ...
**JMagick安装与配置详解** JMagick是一款强大的Java接口,它允许Java应用程序与ImageMagick图像处理库进行交互,从而实现丰富的图像操作功能。本文将详细介绍如何在Java环境中安装和配置JMagick,以及如何使用提供...
《JMagick:Java 图像处理的利器与内存管理策略》 在计算机视觉和Web开发领域,图像处理是一项至关重要的任务。Java作为一种广泛使用的编程语言,提供了多种图像处理库,其中JMagick是一个非常实用的工具,它为Java...
例如,一个常见的应用场景是用户上传一张大尺寸的照片,服务器端可以通过JMagick进行自动缩放,减少存储空间并加快网页加载速度。 总的来说,JMagick结合ImageMagick,为Java开发者提供了一个强大的图像处理工具,...
要实现在Java中添加水印,我们可以利用开源的图像处理库,如Apache Commons Imaging(原名:Sanselan)、ImageMagick的Java绑定(JMagick)或Java Advanced Imaging (JAI)。这里以Apache Commons Imaging为例,因为...
- 图像处理服务:在服务器端,JMagick可以作为后台服务,对用户上传的图片进行自动化处理,如生成缩略图、调整尺寸、添加水印等。 - 数据可视化:在数据科学领域,JMagick可以帮助将复杂的数据转换成可视化的图像,...
jmagick处理图片,图片高质量压缩,图片加水印。
5. 文本处理:可以添加文本到图像上,调整字体、颜色、位置等属性,适用于制作水印、标题等。 6. 图像分析:包括颜色统计、直方图计算等,可用于图像的质量评估和分析。 在Java Web应用中,JMagick可以通过Ajax技术...
Jmagick 是一个 Java 接口,用于 ImageMagick 图形库,它提供了一系列强大的功能,包括图片缩放、翻转、添加水印等复杂的图形处理操作。这些功能在很多应用中都非常有用,例如在 Web 应用程序中优化用户上传的图片...
JMagick 提供了丰富的 API 来进行图像处理,如缩放、裁剪、旋转、颜色调整等。以下是一些常见操作的例子: - **缩放图像**: ```java image.scale(new Dimension(800, 600)); // 将图像缩放到指定尺寸 ``` - **...
jmagick image generate or operator library
它可以进行调整大小、裁剪、旋转、色彩调整、添加边框、文字水印等操作,还能创建复杂的图像合成效果。 2. **命令行工具**:ImageMagick提供了许多命令行工具,如`convert`、`display`、` composite`等,方便开发者...
JMagick-6.0.4-0.tar 下载
通过JMagick,开发者可以在Java环境中无缝地进行图像处理操作,如缩放、裁剪、旋转、调整颜色等。 **1. JMagick的基本概念** - **Java接口**: JMagick是ImageMagick与Java之间的桥梁,提供了一系列Java类和方法,...