废话不多说,直接上代码,
采用im4java压缩图片,并且图片不失真
package com.bcinfo.sns.util;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
public class ImagesUtil {
/**
* ImageMagick的路径
*/
public static String imageMagickPath = null;
static{
/**
* 获取ImageMagick的路径
*/
//linux下不要设置此值,不然会报错
imageMagickPath = "E:\\Program Files\\ImageMagick-6.7.3-Q16";
}
/**
* 根据坐标裁剪图片
*
* @param srcPath 要裁剪图片的路径
* @param newPath 裁剪图片后的路径
* @param x 起始横坐标
* @param y 起始纵坐标
* @param x1 结束横坐标
* @param y1 结束纵坐标
*/
public static void cutImage(String srcPath, String newPath, int x, int y, int x1,
int y1) throws Exception {
int width = x1 - x;
int height = y1 - y;
IMOperation op = new IMOperation();
op.addImage(srcPath);
/**
* width:裁剪的宽度
* height:裁剪的高度
* x:裁剪的横坐标
* y:裁剪的挫坐标
*/
op.crop(width, height, x, y);
op.addImage(newPath);
ConvertCmd convert = new ConvertCmd();
//linux下不要设置此值,不然会报错
convert.setSearchPath(imageMagickPath);
convert.run(op);
}
/**
* 根据尺寸缩放图片
* @param width 缩放后的图片宽度
* @param height 缩放后的图片高度
* @param srcPath 源图片路径
* @param newPath 缩放后图片的路径
*/
public static void zoomImage(Integer width, Integer height, String srcPath, String newPath) throws Exception {
IMOperation op = new IMOperation();
op.addImage(srcPath);
op.resize(width, height);
op.addImage(newPath);
ConvertCmd convert = new ConvertCmd();
//linux下不要设置此值,不然会报错
convert.setSearchPath(imageMagickPath);
convert.run(op);
}
/**
* 给图片加水印
* @param srcPath 源图片路径
*/
public static void addImgText(String srcPath) throws Exception {
IMOperation op = new IMOperation();
op.font("宋体").gravity("southeast").pointsize(18).fill("#BCBFC8").draw("text 5,5 bcinfo.com");
op.addImage();
op.addImage();
ConvertCmd convert = new ConvertCmd();
//linux下不要设置此值,不然会报错
convert.setSearchPath(imageMagickPath);
convert.run(op,srcPath,srcPath);
}
public static void main(String[] args) throws Exception{
//cutImage("c://images//firelily.jpg", "c://images//firelily232.jpg", 98, 48, 300, 300);
//zoomImage(129 ,369, "c://images//ooo.jpg", "c://images//ooo2.jpg");
//addImgText("c://images.src//firelily.jpg");
}
}
分享到:
相关推荐
因为im4java是基于imagemagick的commandline进行调用的java接口,不像 jmagick那样用java jni调用本地imagemagick的api那么复杂。其实安装imagemagick在任何平台都是一样的安装,在linux下面有rpm包,安装那个包,...
### ImageMagick与Im4Java配置详解 #### 一、简介 ImageMagick是一款功能强大的图像处理工具,它能够创建、编辑、合成多种格式的图片。Im4Java则是一款Java库,通过调用ImageMagick命令行接口来实现对图片的各种...
im4java是ImageMagick的一个Java开源接口,使用起来非常方便。 很多网站都会用到对图片的一些处理,包括图片的裁剪、给图片加水印、按比例缩放图片等操作,用ImageMagick实现这些功能,性能非常好,图片还不会失真...
在 Java 中使用 ImageMagick 需要先确认 JDK、Maven 正确安装,然后引入依赖 IM4Java 是 ImageMagick 的 Java API 包,它将 Java 代码转化成对 ImageMagick 的命令行调用。 IM4Java 的作用是将 Java 代码转成对 ...
总的来说,ImageMagick和im4java的组合为Java开发者提供了一种强大且灵活的方式来处理图像,而im4java的源代码则有助于理解其实现机制并进行自定义开发。在Java项目中集成im4java jar包,能够让你利用ImageMagick的...
4. 调整配置:可能需要配置Java的系统属性,指向ImageMagick的安装路径,以便Java代码能找到并使用它。 5. 测试与优化:测试代码,确保图像处理操作按预期工作,并根据性能需求进行优化。 `Readme-说明.htm`文件...
IM4JAVA是ImageMagick的一个Java接口,它提供了一个高级的API,允许Java开发者调用ImageMagick的命令行工具进行图像处理操作,如转换、裁剪、旋转、合并等。ImageMagick是一个功能强大的跨平台图像处理软件,支持...
使用 phantomjs 和 im4java 生成网页缩略图,切图用的是ImageMagick,附送im4java调用ImageMagick处理图片代码,包括剪切、调整大小、调整到指定比例大小不足部分补白边。包含 phantomjs 包,不包含ImageMagick。
在java中通过ImageMagick安装包和im4java.jar把其他格式图片如pdf转换为PNG,JPEG等常用格式图片之间的相互转换。转换效率还可以。内有安装操作步骤及编码内容。亲测有效。 场景运用:在前端图片格式上传中,需要在...
ImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转...
在java中通过ImageMagick安装包和im4java.jar把其他格式图片如HEIC转换为PNG,JPEG等常用格式图片。内有安装操作步骤及编码内容。亲测有效。 场景运用:ios操作系统在前端图片格式上传中。已普遍采用HEIC格式图片。...
标题中的"jmagick-6.2.4-1-IM-6.2.5.jar"和"ImageMagick-6.2.5-4-Q16-windows-dll.exe"分别指的是JavaMagick库和ImageMagick软件的不同版本。这两个组件在IT领域中扮演着重要的角色,特别是对于图像处理和转换。 **...
在Java中,我们可以借助于一个名为`Im4Java`的库来调用ImageMagick的命令。例如,要改变图片尺寸,可以创建一个`ConvertOp`对象,设置其尺寸参数,然后执行转换操作。这使得开发人员无需深入了解图像处理的细节,就...
用法默认情况下,容器将运行convert命令$ docker run -v /your/images:/imgs dpokidov/imagemagick /imgs/sample.png -resize 100x100 /imgs/resized-sample.png您可以更改入口点并传递其他IM命令来执行。...
2. **图片处理**:在Servlet中,利用Java绑定的ImageMagick API(如JavaMagick或Im4Java)进行图片处理,例如调整大小、裁剪等。 3. **Ajax通信**:使用Ajax发送异步请求,获取处理进度或结果,更新前端展示。 4. ...
Java提供了丰富的图像处理库,如Apache Commons Imaging(原名Apache Sanselan)或ImageMagick的Java接口Im4Java。这些库能够读取、修改和保存各种图像格式。后端接收到裁剪参数后,根据这些参数调整原始图像,裁剪...
这些文件可能与使用Java语言调用ImageMagick的库有关,例如JMagick或IM4Java。`RuntimeUtil.java`可能包含了运行系统命令(如ImageMagick的命令行工具)的辅助方法,用于在Java程序中执行图像处理任务。`...
ImageMagick 是一款开源的功能强大的图像处理工具,能转换和处理很多一直图片的格式。
im4java上的(非常)薄包装器,ImageMagick命令行实用程序上的包装器。 实际上,这不过是一个小宏。 用法 将以下内容添加到您的project.clj [illusioniste“ 1.0.1-SNAPSHOT”] (ns example.core (:require ...
- 为了获得更好的效果,开发者通常会使用第三方库,如`ImageMagick`的Java绑定(`Im4Java`)、`FreeImage`库或者`Apache Commons Imaging`(前身是`Sanselan`)。 2. **PNG透明度处理**: - PNG图像的透明度由...