`
小网客
  • 浏览: 1243942 次
  • 性别: 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
分享到:
评论

相关推荐

    图片缩放截剪功能_JAVA源码

    下面,我们将详细讲解这两个关键步骤:图片缩放和图片截剪。 **图片缩放** 图片缩放通常涉及到调整图像的宽度和高度。有两种主要的缩放方法:按比例缩放和固定尺寸缩放。按比例缩放保持了原图的宽高比,而固定尺寸...

    java读取图片

    首先,我们要了解Java中的核心类库`java.awt.image`和`javax.imageio`,它们提供了读取和操作图像的基本功能。其中,`javax.imageio.ImageIO`是关键,它包含了读取不同格式图像的方法。 要读取一个图片文件,我们...

    Java-kaohe.rar_图片处理_考核

    5. **图像操作**: 在Java中,可以进行裁剪、缩放、旋转、色彩调整、滤镜应用等多种图像操作。这些操作通常涉及到`Graphics2D`对象,它是`Graphics`的子类,提供了更多的绘图功能。 6. **Graphics2D对象**: `...

    java use picture

    2. **读取和加载图片**:使用`javax.imageio.ImageIO`类的静态方法`read()`可以从文件或输入流中读取图像。例如: ```java File imageFile = new File("path_to_your_image.jpg"); BufferedImage image = ImageIO...

    java Swing读取图片

    而`javax.swing.ImageIcon`是Swing中专门用于在组件上显示图像的类,它简化了图片的加载和显示过程。 1. 加载图片: 在Java中,我们通常使用`ImageIcon`类的构造函数来加载图片。以下代码展示了如何从文件系统中...

    java 缩略图实现

    在这个过程中,我们可以使用Java的`javax.imageio.ImageIO`类和`java.awt.image.BufferedImage`类来实现。 首先,让我们了解一下`javax.imageio.ImageIO`类。这是Java标准库中的一个关键组件,用于读取、写入和处理...

    Java做图片压缩的代码

    在Java中,可以使用`javax.imageio.ImageIO`类来读取和写入图像,同时利用`BufferedImage`对象进行处理。以下是一个简单的例子,展示了如何使用Java 2D API压缩图片: ```java import javax.imageio.ImageIO; ...

    上传图片功能

    4. **图片缩放**:读取图片,并按一定比例缩放后保存。 #### 三、代码分析 下面是对上述功能的核心代码段进行详细解读: ```java public String onload(FormFile ff, HttpServletRequest request) throws ...

    JAI处理TIFF,图片转TIFF

    Java Advanced Imaging (JAI) 是一个强大的Java库,它提供了丰富的图像处理功能,如图像缩放、裁剪、旋转、色彩调整、滤镜应用以及复杂的图像运算等。对于TIFF文件的支持,JAI也提供了相应的API接口,能够帮助开发者...

    java图片的上传裁剪功能实现

    在Java编程中,图片的上传和裁剪是常见的功能需求,尤其在开发Web应用或移动应用时。这个功能涉及到客户端的文件上传、服务器端的文件处理以及可能的图像操作库的使用。以下是对这一主题的详细说明: 1. **文件上传...

    java处理裁剪图片(更改图片大小)

    在Java编程中,处理图像操作是一项常见的任务,其中包括裁剪图片和更改图片尺寸。下面将详细介绍这三种方法。 首先,我们来谈谈使用第三方工具ImageMagick。ImageMagick是一款强大的命令行工具,能够处理各种图像...

    java生成素略图,图片缩放

    本例中使用了Java标准库中的`java.awt.image.BufferedImage`类和`javax.imageio.ImageIO`接口来读取、处理并保存图片。此外,还使用了`java.awt.geom.AffineTransformOp`来进行图片的缩放操作。 #### 2. 实现原理 -...

    java对图片进行处理

    以上就是使用Java对图片进行处理的关键知识点,包括获取图片尺寸、缩放图片、裁剪图像以及添加文字和图片水印的方法。通过熟练掌握这些技术,开发者可以轻松地在各种应用中实现图片处理功能。在实际项目中,可能还...

    images.zip

    此外,Java的`BufferedImage`类还支持图像的缩放、裁剪和颜色转换等操作。 其次,虽然标签是"java",但要实现一个飞机大战游戏,我们还需要了解一些Java的图形库,比如JavaFX或Swing。JavaFX提供了丰富的UI组件和...

    用java如何把图片处理到指定大小

    本文将详细介绍如何使用Java实现图片处理,具体包括图片的尺寸调整和指定位置的裁剪。 #### 1. 调整图片尺寸 在Java中,可以通过`BufferedImage`类来加载和操作图片,并使用`Image`接口提供的方法来进行图片尺寸的...

    java图片处理类-java课程设计

    4. **ImageIO类**:`javax.imageio.ImageIO`类用于读取和写入图像文件,支持多种图像格式,如JPEG、PNG、GIF等。`ImageIO.read()`和`ImageIO.write()`是两个常用的方法,分别用于读取和保存图像。 5. **图像处理...

    批量缩放图片的Java实现

    7. **配置参数**:在`PictureResize.java`程序中,很可能包含了配置图片缩放大小的参数,这样用户可以根据需求调整缩放比例。 总之,批量缩放图片的Java实现是一个结合了文件操作、图像处理和可能的并发编程的技术...

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

    不过在这个项目中,可能使用了更简单的库,如Imgscalr,它提供了简单的API来进行图片缩放和裁剪。裁剪操作通常包括设置裁剪区域的坐标和大小,然后使用`CropImageOp`类进行实际的裁剪操作。 4. 图片缩放: 缩放是...

    基于Java的源码-电子相册源码.zip

    例如,可以使用`ImageIO`类读取图片文件,`BufferedImage`类进行图像操作,如缩放、裁剪、旋转等。 2. 图片显示:Java Swing或JavaFX是构建用户界面的主要工具。在电子相册中,`JFrame`作为主窗口,`JLabel`或者`...

    java处理图片大小等比例缩放,自定义修改图片大小,截取,水印

    在Java编程语言中,处理图片是一项常见的任务,包括调整图片大小、等比例缩放、裁剪、压缩以及添加水印等。以下将详细介绍这些知识点: 1. **等比例缩放图片**: 在Java中,我们可以使用`java.awt.image....

Global site tag (gtag.js) - Google Analytics