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

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

    博客分类:
  • Java
 
阅读更多

概述:

基于Sun自带lib进行图片的操作,此处主要展示图片的缩放和图片剪裁

实现:

图片缩放:

/**
 * 图片伸缩,不破坏图片
 * 
 * @param srcFile 原图片路径
 * @param dstFile 目标图片路径
 * @param dstWidth 目标宽度
 * @param dstHeight 目标高度
 * @date 2013-11-1
 */
public static void scale(String srcFile, String dstFile, int dstWidth, int dstHeight) {

	try {
		ImageInputStream iis = ImageIO.createImageInputStream(new File(srcFile));

		Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis);

		ImageReader reader = (ImageReader) iterator.next();

		reader.setInput(iis, true);

		BufferedImage source = reader.read(0);

		BufferedImage tag = new BufferedImage(dstWidth, dstHeight, source.getType());
		tag.getGraphics().drawImage(source, 0, 0, dstWidth, dstHeight, null);
		File file = new File(dstFile);
		ImageIO.write(tag, reader.getFormatName(), file);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

图片剪裁:

/**
 * 图片剪裁,基于起始坐标(x,y)和范围[widthRange,heightRange]
 * 
 * @param srcFile 原图片路径
 * @param dstFile 目标图片路径
 * @param x 起始X
 * @param y 起始Y
 * @param widthRange 范围width
 * @param heightRange 范围height
 * @date 2013-11-1
 */
public static void cut(String srcFile, String dstFile, int x, int y, int widthRange,
	int heightRange) {
	try {

		ImageInputStream iis = ImageIO.createImageInputStream(new File(srcFile));

		Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis);

		ImageReader reader = (ImageReader) iterator.next();

		reader.setInput(iis, true);
		ImageReadParam param = reader.getDefaultReadParam();
		Rectangle rectangle = new Rectangle(x, y, widthRange, heightRange);
		param.setSourceRegion(rectangle);
		BufferedImage bi = reader.read(0, param);
		File file = new File(dstFile);
		ImageIO.write(bi, reader.getFormatName(), file);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

测试:

public static void main(String[] args) {
	String srcFile = "G:/1.jpg";
	String dstFile = "G:/test.jpg";
	int width = 120;
	int height = 12000;
	cut(srcFile, dstFile, 10, 10, width, height);
	scale(srcFile, dstFile, width, height);
}

 

评价:

效率很低

1
0
分享到:
评论

相关推荐

    javax.imageio-1.0.5.jar

    javax.imageio-1.0.5.jar, java处理图片的库。 从maven中央仓库下载的。实测可用。

    图片处理 javax.imageio.IIOException: Unsupported Image Type

    NULL 博文链接:https://zhangmingji.iteye.com/blog/1969693

    javax.jms.jar

    Classes contained in javax.jms.jar: javax.transaction.xa.XAResource.class javax.jms.BytesMessage.class javax.jms.Message.class javax.jms.JMSException.class javax.jms.Destination.class javax.jms....

    javax.persistence.jar

    Files contained in javax.persistence.jar: META-INF/MANIFEST.MF javax.persistence.Access.class javax.persistence.AccessType.class javax.persistence.AssociationOverride.class javax.persistence....

    javax.jms.jar下载

    javax.jms.BytesMessage.class javax.jms.Connection.class javax.jms.ConnectionConsumer.class javax.jms.ConnectionFactory.class javax.jms.ConnectionMetaData.class javax.jms.DeliveryMode.class javax.jms....

    Exception in thread “main” javax.imageio.IIOException: Can’t read input file!

    Exception in thread “main” javax.imageio.IIOException: Can’t read input file!:无法读取输入文件! 原可以从两个方面分析: 路径中文乱码问题 target/classes文件夹中并没有找到图片 加粗样式看下代码: ...

    javax.jar 包免费下载

    javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar javax.jar ...

    javax.mail-1.4.4.jar

    通过java扩展包javax.mail-1.4.4.jar实现邮件发送功能。 import javax.mail.Address; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart...

    javax.ejb.jar下载

    Files contained in javax.ejb.jar: META-INF/MANIFEST.MF javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout.class javax.ejb.ActivationConfigProperty.class javax.ejb.AfterBegin.class javax....

    javax.servlet jar包---解决找不到javax.servlet.*等问题

    javax.servlet的jar包,解决找不到javax.servlet.*等问题的!欢迎下载!!

    javax.servlet.jar下载

    Files contained in javax.servlet.jar: META-INF/MANIFEST.MF javax/servlet/http/LocalStrings.properties javax.servlet.http.HttpSessionBindingListener.class javax.servlet....

    javax.mail-1.5.6-API文档-中文版.zip

    赠送jar包:javax.mail-1.5.6.jar; 赠送原API文档:javax.mail-1.5.6-javadoc.jar; 赠送源代码:javax.mail-1.5.6-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.5.6.pom; 包含翻译后的API文档:javax.mail...

    javax.ws.rs-api-2.0.1-API文档-中文版.zip

    赠送jar包:javax.ws.rs-api-2.0.1.jar; 赠送原API文档:javax.ws.rs-api-2.0.1-javadoc.jar; 赠送源代码:javax.ws.rs-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:javax.ws.rs-api-2.0.1.pom; 包含翻译后...

    javax.mail-1.6.2-API文档-中英对照版.zip

    赠送jar包:javax.mail-1.6.2.jar; 赠送原API文档:javax.mail-1.6.2-javadoc.jar; 赠送源代码:javax.mail-1.6.2-sources.jar; 赠送Maven依赖信息文件:javax.mail-1.6.2.pom; 包含翻译后的API文档:javax.mail...

    javax.ejb.rar

    META-INF / maven / org.glassfish.main.ejb / javax.ejb / pom.properties META-INF / maven / org.glassfish.main.ejb / javax.ejb / pom.xml javax.ejb.AccessLocalException.class javax.ejb.AccessTimeout....

    javax.servlet-api-3.1.0.jar中文文档.zip

    javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...

    javax.servlet 的JAR包

    javax.servlet JAR包,解决找不到 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; jar包问题

    javax.xml.bind.jar

    java的工具包,javax.xml.bind.jar,javax.xml.ws-3.0-prelude-embedded-m2,javax.jws-3.0-prelude-embedded-m2

    javax.websocket-api-1.1-API文档-中文版.zip

    赠送jar包:javax.websocket-api-1.1.jar; 赠送原API文档:javax.websocket-api-1.1-javadoc.jar; 赠送源代码:javax.websocket-api-1.1-sources.jar; 赠送Maven依赖信息文件:javax.websocket-api-1.1.pom; ...

    javax.activation-1.2.0-API文档-中文版.zip

    赠送jar包:javax.activation-1.2.0.jar; 赠送原API文档:javax.activation-1.2.0-javadoc.jar; 赠送源代码:javax.activation-1.2.0-sources.jar; 赠送Maven依赖信息文件:javax.activation-1.2.0.pom; 包含...

Global site tag (gtag.js) - Google Analytics