图像缩放是我们常常用到的一个操作,原理是数字图像处理的事,这里不管了。利用程序来讲原理很好理解。
第一:拿到原始图片的宽度和高度。
第二:根据缩放比例获得新图片的宽度和高度。
第三:用例原始图片的像素获得新的图片。
以下是完整的方法:
public final BufferedImage getResizePicture(BufferedImage originalPic,
double bo) {
// 获得原始图片的宽度。
int originalImageWidth = originalPic.getWidth();
// 获得原始图片的高度。
int originalImageHeight = originalPic.getHeight();
// 根据缩放比例获得处理后的图片宽度。
int changedImageWidth = (int) (originalImageWidth * bo);
// 根据缩放比例获得处理后的图片高度。
int changedImageHeight = (int) (originalImageHeight * bo);
// 生成处理后的图片存储空间。
BufferedImage changedImage = new BufferedImage(changedImageWidth,
changedImageHeight, BufferedImage.TYPE_3BYTE_BGR);
// double widthBo = (double) yourWidth / originalImageWidth;
// double heightBo = (double) yourHeightheight / originalImageHeight;
// 宽度缩放比例。
double widthBo = bo;
// 高度缩放比例。
double heightBo = bo;
AffineTransform transform = new AffineTransform();
transform.setToScale(widthBo, heightBo);
// 根据原始图片生成处理后的图片。
AffineTransformOp ato = new AffineTransformOp(transform, null);
ato.filter(originalPic, changedImage);
// 返回处理后的图片
return changedImage;
}
上面的方法有一点是需要解释的:缩放比例bo,可以整体的控制图片的缩放,不过也可以不按缩放,我们只要知道当前图片的宽度高度和原始图片的宽度和高度,就可以知道宽度和高度的缩放比例,既:
// double widthBo = (double) yourWidth / originalImageWidth;
// double heightBo = (double) yourHeightheight / originalImageHeight;
这样我就可以将图片缩放成任意的宽度和高度。但需要注意的是:
图片缩放会造成图像画质的下降,还有就是图片尺寸如果过大会出现内存溢出,这里关于能处理的图片的最大尺寸,建议在编程时要自己多注意,我个人觉得2200px*2200px以后出现内存溢出的可能性比较大。
附件是一个完成的可以运行的例子。运行时请将文件里的demo.jpg放在C盘下,或者您自己去修改程序里的图片路径,否则会出现空指针异常。
运行效果如下:
原始图片:
缩放0.5倍:
缩放2倍:
文章地址:
http://javapub.iteye.com/blog/737703
相关文章
Java图像图片 边缘检测 http://javapub.iteye.com/blog/685468
Java图像变灰 http://javapub.iteye.com/blog/687082
Java 给图片增加 水印图片 水印文字 [url]Java 给图片增加 水印图片 水印文字[/url]
Java图像渐变 http://javapub.iteye.com/blog/736799
分享到:
相关推荐
java图片缩放 java缩略图 缩略图 java图片处理
一、图片缩放 1. 使用`BufferedImage`类: Java的`java.awt.image`包提供了`BufferedImage`类,可以用来读取、创建和操作图像。通过`Graphics2D`对象,我们可以对`BufferedImage`进行缩放操作。以下是一个简单的...
本文将深入探讨如何使用Java进行图片缩放处理,并确保在压缩过程中尽可能减少失真,同时允许自定义压缩后的图片质量。 首先,我们需要了解Java中的核心库`java.awt.image`和`javax.imageio`,它们提供了处理图像的...
要使用ImageMagick在Java中进行图片缩放,首先需要在系统中安装ImageMagick,然后添加`Imagemagick-Java`库到项目中。这个库通常以JAR文件的形式提供,可以将其添加到项目的类路径中。 接下来,我们需要了解如何...
根据提供的文件信息,我们可以总结出以下关于“Java图片缩放类”的相关知识点: ### Java 图片缩放类概述 在Java开发中,处理图像时经常需要进行缩放操作以适应不同的显示需求或优化资源占用。Java 提供了多种库来...
1. **Java图像处理API** Java提供了丰富的API来处理图像,主要位于`java.awt`和`javax.imageio`包中。其中,`java.awt.Image`类是处理图像的基础,而`java.awt.Graphics2D`则提供了绘制和操作图像的方法。 2. **...
高清缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等 功能非常强大,并且很清晰,请给好评:)
在Java中,我们可以使用`java.awt.image.BufferedImage`类来处理图像。为了等比例缩放图片,我们需要获取原始图片的宽高比,然后根据目标尺寸计算出新的宽高。关键代码可能如下: ```java BufferedImage source =...
6. **图像处理**:项目可能使用了特定的Java图像处理库,如Java Advanced Imaging (JAI) 或 ImageIO,来实现图片的缩放和裁剪功能。 总的来说,"jsp+CropZoom+jquery+java 图片缩放裁剪"项目是一个结合了前后端技术...
Java图片缩放器源码是用于处理图像大小调整的程序,它可以帮助开发者在不损失过多图像质量的情况下,将图片按照指定比例进行放大或缩小。在Java编程语言中,实现这样的功能通常涉及到对图像处理库的使用,如Java的...
在Authorware这个强大的多媒体创作工具中,图片缩放是一个常用的操作,它可以帮助用户根据需要调整图像的大小,适应不同的展示需求。以下将详细介绍如何在Authorware中进行图片缩放以及相关的知识点。 一、...
本文将深入探讨YUV图像缩放算法,并通过一个具体的例子来解释如何在代码中实现这一过程。 YUV图像缩放涉及调整Y、U和V分量的像素大小,以适应不同的显示尺寸。常见的缩放方法包括最近邻插值、双线性插值和更高级的...
以上就是使用Java AWT进行图片缩放的基本步骤。在实际应用中,可能还需要考虑性能优化、异常处理以及支持不同格式的图片文件等细节。通过调整缩放算法和质量参数,我们可以获得更高质量的缩放结果。学习和掌握这些...
总之,批量缩放图片的Java实现是一个结合了文件操作、图像处理和可能的并发编程的技术问题。`PictureResize.java`代码应当详细展示了这些技术点的实现,通过对代码的阅读和理解,开发者可以学习到如何在实际项目中...
图片操作类源代码,该类主要用于给图片进行缩放、加水印和得到图片的高、宽及类型。 具体操作请自己参照方法说明自己测试改写。
4. **图片缩放** - **前端缩放**:使用CSS的`transform`属性,可以实现图片的缩放效果,但这仅限于视觉上的缩放,不会改变图片的实际大小。 - **后端缩放**:在服务器端,可以使用Java的图像处理库,如`ImageIO`或...
Java GIF图片缩放是开发过程中常见的一项任务,尤其是在处理动态图像时。GIF是一种支持动画的格式,广泛用于网络上。在Java中处理GIF图片,我们通常会使用到一些库,比如`gif4j`,这是一个轻量级且功能强大的Java库...
在Java编程语言中,处理图像是一项常见的任务,其中包括图片的缩放和拉伸。本文将深入探讨如何使用Java实现这一功能,特别是在实际项目中的应用。标题"java 图片的缩放与拉伸"直指核心问题,即如何改变图片的尺寸以...