`
solid210
  • 浏览: 52886 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java保存图像,设置其DPI

 
阅读更多
import java.awt.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;
import javax.imageio.*;

import java.awt.Graphics;
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 javax.swing.ImageIcon;
 
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("/35670v.jpg");
        File outfile = new File("/35670_600.jpg");

        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 = 600, h = -1;
	     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(300);
        jpegEncodeParam.setYDensity(300);
        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;
	    }
}
 
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    修改压缩图片的dpi_dpi_

    在Java中,修改DPI主要涉及对图像的元数据(metadata)进行操作,元数据包含了关于图像的各种信息,包括DPI设置。 描述中提到只需调用TXT文档中的方法,这通常意味着开发者可能已经封装了一个方便的方法来实现这个...

    基于opencv300的修改图片尺寸(容量)大小和dpi.zip

    6. **项目执行**:项目中的`t.exe`是编译后的可执行文件,点击运行后,它应该能够加载图片,按照预设的规则调整尺寸、容量和DPI,然后保存处理后的图像。调试此程序可以帮助理解OpenCV的图像处理流程,并学习如何在...

    用java把2个tiff或图片合并成一个tiff或图片

    4. **图像合并**:合并两个图像通常涉及到创建一个新的`BufferedImage`对象,设置其宽度和高度为两个输入图像的总和。然后,遍历每个输入图像,将像素值复制到新图像的相应位置。注意,如果图像有不同的尺寸或色彩...

    将PDF文件转换为Image图像文件的Java源码

    通过调用`renderImageWithDPI`方法,我们可以将指定页码的PDF页面转换为`BufferedImage`对象,并设置DPI(每英寸点数)以控制图像质量。最后,我们使用`ImageIO.write`方法将BufferedImage保存为JPEG格式的图像文件...

    TwelveMonkeysImageIO:JavaImageIO的一个插件和扩展集合

    另外,该库还提供了元数据处理,可以读取和保存图像文件的元数据,这对于需要保留原始信息的图像处理应用尤其重要。 在实际应用中,TwelveMonkeys ImageIO的集成非常简单。开发者只需在项目中添加相应的依赖,就...

    JAVA实现多页PDF转一张长图图片

    接下来,为了将PDF页面转换为图像,我们可以使用Java的`javax.imageio.ImageIO`类,它提供了读取和写入图像文件的功能。我们可以创建一个BufferedImage对象,然后使用`PDFPageView`的`renderImageWithDPI`方法将其...

    java 操作pdf 相样实现 如:pdf 转为图片

    3. **保存图像**:将渲染后的图像保存为文件,这可以通过调用`BufferedImage`的`write`方法来完成,同时指定输出文件的路径和图像格式。 ### 示例代码片段 以下是一个使用PDFRenderer将PDF文档转换为PNG图像的简单...

    java pdf转图片

    5. **保存图像**:最后,将BufferedImage对象写入磁盘,使用`ImageIO.write(image, format, output)`,其中`format`是图像格式,`output`是输出流或文件路径。 在这个过程中,可能会遇到的问题包括图像渲染质量、...

    java PDF转jpg

    在PDFBox中,可以通过设置DPI(每英寸点数)来控制输出图像的质量。 4. **API使用**:在PDFBox中,使用`PDPageContentStream`和`PDPixelMap`等类可以实现将PDF页面渲染为图像。首先,需要打开PDF文档,然后遍历每个...

    java用poi转ppt为图片和用pdfbox转pdf为图片的demo

    4. 转换幻灯片为图像:使用`SlideShow.render(RenderedImage)`方法,将幻灯片渲染为`RenderedImage`对象,然后可以将其保存为图像文件。 5. 保存图片:将`RenderedImage`对象写入到指定的文件路径,如`ImageIO....

    java pdf转化成jpg 遇到的问题,请教高手。

    总之,Java中的PDF到JPEG转换是一个涉及多个步骤的过程,包括加载PDF、渲染页面和保存图像。选择合适的库,理解基本操作,以及妥善处理可能出现的问题,是成功完成转换的关键。在实际应用中,你可能需要根据具体需求...

    Java中PDF转图片

    2. **创建PDF渲染器**:在Java代码中,你需要创建一个`Renderer`实例,它负责解析PDF文档并将其呈现为可视化的图像。 ```java Reader reader = new RandomAccessBufferedFileReader(new File("path_to_your_pdf....

    jtwain

    7. **保存图像**:最后,将处理后的图像保存到本地文件系统,或者直接上传到服务器。 在实际开发中,需要注意的是,由于TWAIN是本地系统级别的接口,所以Java的jtwain库通常会依赖于本地的TWAIN驱动程序。这意味着...

    JAVA实现PDF转图片示例及jar包

    5. **保存图像**:最后,将BufferedImage对象写入磁盘,形成图片文件。 以下是一个简化的`test.java`示例代码片段: ```java import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.rendering....

    itext将图片生成PDF(高清版)

    `iText`提供了`Image`类,可以设置其`DPI`属性来控制图像质量。 以下是一个简单的步骤,展示如何使用`iText`将PNG图片转换为高清PDF: 1. 引入`iText`库:首先,确保你的项目中包含了`iText`库。在Java项目中,...

    itext7 pdf转图片

    一旦图像被渲染,就可以使用Java的`ImageIO`类将其保存为常见的图像格式,如JPEG或PNG。 4. 示例代码: - 在给定的文件列表中,"Program.cs"可能是实现此功能的C#代码。`pdf2image02.csproj`是一个.NET项目文件,...

    JAVASE通过调用接口获取PDF文件并对PDF分割并打印,PDF不支持直接打印必须先转成JPG再打印

    Java的`java.awt.image.BufferedImage`类和`javax.imageio.ImageIO`类可以用于图像处理和保存。 5. **Java打印服务**: Java SE提供了`java.print.PrintService`接口,用于访问和管理本地系统的打印设备。`java....

    用java一维码批量生成(条码)图片

    4. 图片质量:可以通过设置DPI(每英寸点数)来提高图片质量,防止在打印或扫描时出现问题。 对于压缩包中的“tz_ywm”文件,它可能是作者提供的示例代码或已生成的一维码图片。如果遇到问题,你可以参考这些文件或...

    图片转字符图片工具类,支持 Gif 动画、图片合并、图片无损保存、九宫格图、百叶图、修改图片DPI等图片处理其他工具类方法

    9. **修改图片DPI**:DPI(dots per inch)代表每英寸像素数,调整DPI可以改变图像的实际大小而不影响其清晰度,适用于打印或适应不同显示设备。 这些工具类方法为开发者提供了丰富的功能,可以满足各种图像处理...

    java icepdf转一张或多张图片

    同时,合理设置渲染质量和DPI(每英寸点数)平衡转换速度和图片质量。 7. **错误处理**:在实际开发中,需要对可能出现的异常进行捕获和处理,例如PDF文件不存在、权限问题或内存不足等。 8. **内存管理**:由于...

Global site tag (gtag.js) - Google Analytics