`
小网客
  • 浏览: 1243758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于imagemagick的图片缩放和图片剪裁

    博客分类:
  • Java
 
阅读更多

需求背景:

去年对图片做批量处理,也就是把原始图片处理成所需的图片,包括缩放所用到的以便做前台调用处理同时实现离线图片操作。

 

调研思路:

1.java原始的imageio,详情参见以前博客

基于javax.imageio的图片缩放和图片剪裁

2.三方native工具,此处是imagemagick,接口基于im4java,其实imagemagick的接口有多种,但是im4java做的仅仅是命令行的转换,然后利用imagemagick去操作

 

环境:

依赖:

<dependency>
	<groupId>org.im4java</groupId>
	<artifactId>im4java</artifactId>
	<version>1.2.0</version>
</dependency>

ImageMagick-6.7.6-Q16安装:

${ImageMagick_home}=D:/tools/tool/ImageMagick-6.7.6-Q16

 

代码实现:

缩放:

public static void scale(String srcFile, String dstFile, int dstWidth, int dstHeight) {

	try {
		IMOperation imOperation = new IMOperation();
		imOperation.addImage(srcFile);
		imOperation.resize(dstWidth, dstHeight);
		imOperation.addImage(dstFile);

		ConvertCmd convert = new ConvertCmd();
		convert.setSearchPath(imageMagickPath);
		convert.run(imOperation);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

剪裁:

public static void cut(String srcFile, String dstFile, int x, int y, int widthRange,
	int heightRange) {
	try {
		IMOperation imOperation = new IMOperation();
		imOperation.addImage(srcFile);
		imOperation.crop(widthRange, heightRange, x, y);
		imOperation.addImage(dstFile);
		ConvertCmd convert = new ConvertCmd();
		convert.setSearchPath(imageMagickPath);
		convert.run(imOperation);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

 测试:

private final static String imageMagickPath = "D:/tools/tool/ImageMagick-6.7.6-Q16";
public static void main(String[] args) throws Exception {
	String srcFile = "G:/1.jpg";
	String dstFile = "G:/test.jpg";
	int dstHeight = 200;
	int dstWidth = 200;
	scale(srcFile, dstFile, dstWidth, dstHeight);

	int x = 10;
	int y = 10;
	int widthRange = 500;
	int heightRange = 600;

	cut(srcFile, dstFile, x, y, widthRange, heightRange);
}

 

注意事项:

1.上述代码由于公司协议是经过处理的,如果直接使用请注意扩展性,异常处理等相关事宜

 

0
0
分享到:
评论

相关推荐

    imagemagick最新的安装软件和php扩展含windows和Linux

    通过`imagick`扩展,您可以执行诸如图片缩放、裁剪、旋转、颜色调整等操作。例如,缩放图像: ```php $im = new Imagick('input.jpg'); $im-&gt;resizeImage(800, 0, Imagick::FILTER_LANCZOS, 1); $im-&gt;writeImage('...

    ImageMagick for Delphi

    它提供了与ImageMagick底层C++ API的桥梁,使得Delphi开发者可以直接在Delphi代码中调用ImageMagick的各种图像处理函数,如转换、裁剪、缩放、旋转、颜色调整等。 MagickImage.pas:这个文件定义了图像对象类,用于...

    asp图片裁剪系统

    ASP图片裁剪系统是一种基于ASP(Active Server Pages)技术,结合JavaScript和HTML构建的Web应用程序,主要用于处理图像的在线裁剪功能。这个系统的核心目的是让用户能够通过浏览器上传图片,并在前端进行实时预览和...

    绝对可用,Flash+PHP上传图片带切割和缩放

    Imagick则提供了更强大的图像处理功能,它基于ImageMagick,可以处理更多种类的图像格式,并且在性能和效果上通常优于GD库。 在头像处理方面,系统可能采用以下步骤:首先,用户通过Flash上传原始图片;然后,...

    php图片裁切工具

    Imagick则基于ImageMagick,功能更为强大,支持更多的图像格式和复杂的图像操作。 这款PHP图片裁切工具正是基于GD库或Imagick实现的。它允许用户指定图片的裁切区域,通过调整坐标和宽高比例,可以精确地裁剪出所需...

    基于asp.net和jquery技术实现无刷新上传头像和图片剪裁

    在现代Web应用中,用户体验是至关重要的,而无刷新上传和图片剪裁功能可以极大地提升用户的交互体验。本文将深入探讨如何使用ASP.NET和jQuery技术来实现这一目标。ASP.NET是一个强大的Web应用程序框架,提供了丰富的...

    图片上传带裁剪

    在Struts2 Action中,我们需要解析接收到的裁剪参数,例如左上角坐标、宽度和高度,然后使用ImageMagick或Java的ImageIO等库处理图片。这些库可以读取原始图片,根据裁剪参数创建一个新的裁剪区域,最后保存裁剪后的...

    图片上传、裁剪

    在IT行业中,图片上传和裁剪是常见的交互功能,尤其在网页和移动应用设计中尤为重要。这个名为"图片上传、裁剪"的压缩包提供的是一个示例(demo),用于演示如何实现图片上传并具备裁剪、放大和缩小等功能。下面我们...

    jquery-Jcrop实现图片裁剪截图上传和保存

    `jQuery Jcrop`是一个流行的JavaScript库,它允许用户在浏览器端进行图像选择、裁剪和截图操作,进而实现上传到服务器并保存。这个库是基于jQuery构建的,因此可以方便地与现有的jQuery应用集成,提供了丰富的API和...

    ASp.net JS图片剪裁

    ASP.NET JS图片剪裁是一种常见的前端图像处理技术,它结合了服务器端的ASP.NET和客户端的JavaScript技术,允许用户在网页上预览并裁剪图片。这种技术在上传头像、产品图片编辑或任何需要用户自定义图片尺寸的应用...

    asp.net 上传图片 预览+裁剪demo

    这个"asp.net 上传图片 预览+裁剪demo"就是一个很好的示例,它基于.NET框架3.5,并利用Flash技术来实现图片的预览和裁剪功能。 首先,我们要理解ASP.NET中的文件上传机制。ASP.NET提供了HttpFileCollection类,用于...

    java版头像上传缩放裁剪功能

    图片缩放可以通过调整图像的宽度和高度来实现,可以使用`BufferedImage`类的`getSubimage()`方法截取部分图像,再用`resize()`方法调整大小。注意保持图像比例,防止拉伸失真。 4. **图像裁剪** 图片裁剪涉及到...

    hippo:一个 http 服务,从 FastDFS 获取图像并通过 GraphicsMagick(ImageMagick) 缩放图像

    总结,"hippo" 是一个使用 Java 开发的 HTTP 服务,其核心功能是整合 FastDFS 的文件存储能力和 GraphicsMagick 或 ImageMagick 的图像处理能力,为用户提供快速、可靠的图片缩放服务。通过这样的设计,"hippo" 可以...

    php使用imagick模块实现图片缩放、裁剪、压缩示例

    在PHP中,Imagick模块是一个强大的图像处理库,它基于ImageMagick,提供了丰富的功能,包括图片的缩放、裁剪和压缩。本示例将详细介绍如何利用Imagick来实现这些操作。 首先,安装Imagick扩展是必要的。在PHP环境中...

    ImageMagick-GUI:用于 ImageMagick 的基于 Swing 的 GUI

    ImageMagick 是一个功能强大的图像处理软件,支持多种图像格式,能够执行包括转换、裁剪、缩放、旋转、添加边框等在内的各种图像操作。 首先,我们来了解一下 ImageMagick。ImageMagick 是一套开源的跨平台工具集,...

    PHP实例开发源码—php图片裁剪网.zip

    Imagick库基于ImageMagick,提供了更高级的功能,包括复杂的滤镜和特效,以及更好的图片裁剪性能。在本实例中,可能会使用到GD库或者Imagick库来实现图片裁剪。 2. **基本概念** - 图片裁剪(Cropping):从原始...

    基于Java web的网页选择图片按需裁剪图像并上传后台接收源码.zip

    ImageMagick可以读取、转换和保存各种格式的图像,支持裁剪、缩放、旋转等多种图像操作。 5. **文件上传处理**:Java Web应用通常使用Servlet API来处理文件上传。`multipart/form-data`类型的表单数据会被Servlet...

    基于PHP与WEB的图片共享系统设计与实现

    2. 图片处理:利用PHP的GD库或ImageMagick进行图片缩放、裁剪、压缩等操作。 3. 安全性:采用HTTPS协议保证数据传输安全,使用JWT(JSON Web Tokens)进行身份验证,防止CSRF(跨站请求伪造)攻击。 4. 性能优化:...

    nodejs对图片进行缩放等操作的实现-node.js gm模块的使用都程.docx

    需要注意的是,由于`gm`是基于ImageMagick的,因此所有操作都会在磁盘上生成临时文件,如果你处理大量图片,可能会消耗大量磁盘空间。 总之,Node.js结合`gm`模块能方便地实现对图片的各种操作,但需要确保系统中...

    基于android的移动应用超炫的图片浏览器.zip

    这些库能够优化内存使用,处理图片缩放,以及在网络不稳定的环境下进行图片缓存。 3. **UI设计**:超炫的图片浏览器需要吸引人的用户界面。Android提供了丰富的布局组件如LinearLayout、RelativeLayout和...

Global site tag (gtag.js) - Google Analytics