`
zhao103804
  • 浏览: 124619 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

JAVA代码实现图片缩放

阅读更多
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.metadata.IIOMetadata;
import javax.imageio.stream.FileImageInputStream;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

public class ImageManipulation {
	public static void main(String[] args) throws Exception {
        File infile = new File("f:\\test.gif");//圖片文件路徑
        File outfile = new File("f:\\test_new2.gif");//圖片文件輸出路徑

        ImageReader reader = ImageIO.getImageReadersByFormatName("jpeg").next();
        reader.setInput(new FileImageInputStream(infile), true, false);
        IIOMetadata data = reader.getImageMetadata(0);
		BufferedImage image = reader.read(0);
		
		int w = 30, h = -1;//Width  Height
	     Image rescaled = image.getScaledInstance(w, h, Image.SCALE_AREA_AVERAGING);
	     BufferedImage output = toBufferedImage(rescaled, BufferedImage.TYPE_INT_RGB);
		 
		Element tree = (Element) data.getAsTree("javax_imageio_jpeg_image_1.0");
        Element jfif = (Element) tree.getElementsByTagName("app0JFIF").item(0);
        for (int i = 0; i < jfif.getAttributes().getLength(); i++) {
            Node attribute = jfif.getAttributes().item(i);
            System.out.println(attribute.getNodeName() + "="
                    + attribute.getNodeValue());
        }
 		FileOutputStream fos = new FileOutputStream(outfile);
        JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(fos);
        JPEGEncodeParam jpegEncodeParam = jpegEncoder.getDefaultJPEGEncodeParam(output);
        jpegEncodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH);
        jpegEncodeParam.setXDensity(200);//设置水平dpi
        jpegEncodeParam.setYDensity(200);//设置垂直dpi
        jpegEncoder.encode(output, jpegEncodeParam);
		fos.close();
    	}

	  public static BufferedImage toBufferedImage(Image image, int type) {
	        int w = image.getWidth(null);
	        int h = image.getHeight(null);
	        BufferedImage result = new BufferedImage(w, h, type);
	        Graphics2D g = result.createGraphics();
	        g.drawImage(image, 0, 0, null);
	        g.dispose();
	        return result;
	    }

}
 
分享到:
评论

相关推荐

    Java图像缩放 图片缩放

    以下是一个简单的双线性插值缩放的Java代码示例: ```java public class ZPhotoer { public static BufferedImage scale(BufferedImage source, int targetWidth, int targetHeight) { BufferedImage scaled = ...

    图片缩放、压缩技术java实现

    本教程将专注于使用Java语言实现图片的等比缩放和压缩技术,以满足存储和传输的需求。下面,我们将深入探讨这些关键知识点。 首先,我们来了解等比缩放。等比缩放是指在改变图片尺寸时,保持其长宽比不变,防止图片...

    java绘图 图片缩放 实例代码

    在这里,我们将主要探讨如何使用Java AWT中的Graphics2D类来实现图片的缩放。 `ScaleImageDemo.java` 是一个Java应用程序,它展示了如何加载图片(例如 `2.jpg`),然后对其进行缩放。下面我们将深入解析这个过程。...

    java图片缩放处理

    一、图片缩放 1. 使用`BufferedImage`类: Java的`java.awt.image`包提供了`BufferedImage`类,可以用来读取、创建和操作图像。通过`Graphics2D`对象,我们可以对`BufferedImage`进行缩放操作。以下是一个简单的...

    批量缩放图片的Java实现

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

    java gif图片缩放代码及帮助文档

    Java GIF图片缩放是开发过程中常见的一项任务,尤其是在处理动态图像时。GIF是一种支持动画的格式,广泛用于网络上。在Java中处理GIF图片,我们通常会使用到一些库,比如`gif4j`,这是一个轻量级且功能强大的Java库...

    java代码实现图片压缩

    实现图片的压缩 1.按照固定的比例缩放图片 2.以宽度为基准等比例放缩图片 3.以高度为基准,等比例缩放图片 4.按照最大高度限制,生成最大的等比例缩略图

    java从图片缩放

    总之,Java提供了强大的图像处理能力,通过理解`BufferedImage`和`Graphics2D`,我们可以方便地实现图片缩放功能,同时考虑到缩放质量、性能和代码的可维护性。在进行图像处理时,记得根据项目需求选择合适的缩放...

    java实现的图片防篡改功能

    这两个Java类可能是实现图片防篡改功能的核心代码。`ImageHelper`可能包含对图片进行哈希计算的主要逻辑,包括读取图片、预处理、计算哈希值等功能。而`ImageUtil`可能是通用的图片处理工具类,包含如图片转换、...

    java实现图片的上传以及根据需要缩小显示

    以上就是使用Java实现图片上传并按需缩放显示的基本步骤。实际应用中,还需要考虑错误处理、内存管理、文件安全、性能优化等方面的问题。提供的文档"图片上传显示(缩小图片).doc"应该包含了更详细的代码示例和具体...

    图片缩放实现

    本文将详细讨论如何实现图片的缩放功能,基于提供的"图片缩放实现"的标题和描述,我们可以推断这是一个关于图片缩放效果的示例项目,名为"imageViewdemo"。 图片缩放涉及到图像处理的基本概念,主要目标是调整图片...

    图片缩放剪切处理代码

    这个“图片缩放剪切处理代码”主题涉及到的是使用JavaScript、ASP、PHP和可能的JSP技术来实现这些功能。下面我们将深入探讨这些技术及其在图片处理中的应用。 首先,JavaScript(JS)是一种广泛使用的客户端脚本...

    java窗体 实现图片拖动 实例代码

    本实例代码主要关注如何在Java窗体中实现图片的拖动功能。我们将探讨Java AWT和Swing库中的相关API,以及如何通过`DragPictureDemo.java`这个示例代码来实现这个功能。 首先,Java AWT(Abstract Window Toolkit)...

    java 图片缩放类

    该类通过构造函数初始化成员变量,并提供了一个核心方法 `s_pic()` 来实现图片缩放功能。 #### 构造函数 ```java public DwindlePic() { // 初始化成员变量 InputDir = ""; OutputDir = ""; InputFileName = ...

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

    在压缩包中的"java图片大小转换"文件中,很可能包含了实现这些功能的示例代码和使用说明,可以参考学习以加深理解。在实际开发中,我们还可以借助第三方库如`ImageMagick`、`Java Advanced Imaging (JAI)`或`JavaFX`...

    java实现图片缩放、旋转和马赛克化

    Java实现图片缩放、旋转和马赛克化技术详解 Java语言作为一门强大的编程语言,广泛应用于图像处理领域。今天,我们将详细介绍Java实现图片缩放、旋转和马赛克化的技术。 一、图片缩放 图片缩放是图像处理中非常...

    Java编程实现幻灯片放映

    Java编程实现幻灯片放映是一项常见的任务,尤其在创建网页互动元素或教学演示时。Java Applet是Java语言中一种特殊的应用程序,它能够在Web浏览器中运行,为用户提供丰富的交互体验。本项目就是利用Java Applet技术...

    java实现电子阅读器(源代码)

    综上所述,这个 Java 实现的电子阅读器源代码涵盖了多个Java编程的子领域,包括GUI设计、事件处理、图形变换、全屏显示、数据持久化以及图像处理。开发者在理解和使用这些源代码时,需要具备扎实的 Java 基础,熟悉 ...

    java实现的sift全部代码

    实现SIFT算法的Java代码可能涉及到大量的矩阵运算和数据结构,如堆栈、队列和数组。开发者可能使用了Java的`java.awt.image.BufferedImage`类来处理图像,以及`java.util.ArrayList`等数据结构来存储关键点和描述符...

    JAVA实现的图片大小随意拉动调整

    本示例中的"JAVA实现的图片大小随意拉动调整"着重讲解了如何利用Swing来实现图片的动态缩放功能,让用户可以自由调整图片的大小。这个功能在很多应用中都非常实用,比如图像查看器、编辑器或者任何需要展示可调整...

Global site tag (gtag.js) - Google Analytics