private BufferedImage gridImage; ... private void saveGridImage(File output) throws IOException { output.delete(); final String formatName = "png"; for (Iterator<ImageWriter> iw = ImageIO.getImageWritersByFormatName(formatName); iw.hasNext();) { ImageWriter writer = iw.next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); ImageTypeSpecifier typeSpecifier = ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB); IIOMetadata metadata = writer.getDefaultImageMetadata(typeSpecifier, writeParam); if (metadata.isReadOnly() || !metadata.isStandardMetadataFormatSupported()) { continue; } setDPI(metadata); final ImageOutputStream stream = ImageIO.createImageOutputStream(output); try { writer.setOutput(stream); writer.write(metadata, new IIOImage(gridImage, null, metadata), writeParam); } finally { stream.close(); } break; } } private void setDPI(IIOMetadata metadata) throws IIOInvalidTreeException { // for PMG, it's dots per millimeter double dotsPerMilli = 1.0 * DPI / 10 / INCH_2_CM; IIOMetadataNode horiz = new IIOMetadataNode("HorizontalPixelSize"); horiz.setAttribute("value", Double.toString(dotsPerMilli)); IIOMetadataNode vert = new IIOMetadataNode("VerticalPixelSize"); vert.setAttribute("value", Double.toString(dotsPerMilli)); IIOMetadataNode dim = new IIOMetadataNode("Dimension"); dim.appendChild(horiz); dim.appendChild(vert); IIOMetadataNode root = new IIOMetadataNode("javax_imageio_1.0"); root.appendChild(dim); metadata.mergeTree("javax_imageio_1.0", root); }
代码来源:http://stackoverflow.com/questions/321736/how-to-set-dpi-information-in-an-image
其中DPI就是你要设置的值,java中默认是72,如果需要打印图片,可能就要设置为300
INCH_2_CM表示1英寸等于多少厘米,这里就是2.54
相关推荐
运用javafx制作的UI,批量修改图片的DPI
Java读取图片分辨率依赖,如果你想实现在后台自动识别图片的分辨率,那么就果断下载吧!
易语言提取bmp图片dpi,应用在图片的dpi分辨率的读取和修改
java 生成带logo、文本的二维码并修改图片的位深度,不努力的程序员不是一个好的程序员
java修改图片的dpi 只需要调用TXT文档中的方法就好
在JAVA中可以在正确解析JPEG图像的DPI像素
<br>在jdk1.6以下的版本环境下,压缩部分图片会很慢,经过我测试,如果图片的DPI越高,速度越慢,一般WEB使用图片DPI都是72,速度很快。大家可以试下。我测试了几张DPI为300,印刷品质的图片,大概要35秒左右,...
java swing 采用C/S架构编写的工具集合,包括pdf转换jpg,jpg转pdf,Excel转pdf,合并pdf,批量创建文件夹,根据文件名称创建文件夹,文件批量重命名,根据文件名称移动文件到文件夹,扫描件去黑边,修改jpg图片的...
本项目为Java图像处理小工具。本Java工具包提供图片色彩空间的转换、图片dpi刷新的能力。我们经常用到的色彩空间主要有RGB、CMYK、Lab等。目前Jar包只支持将图片由RGB模式转换为CMYK模式,转换后的图片为TIFF格式,...
如何获取图片的信息(包括dpi) 【前端js 后台java window系统】-附件资源
图片转字符图片工具类,支持 Gif 动画、图片合并、图片加水印、文字消除锯齿、图片无损保存、图片像素风、九宫格图、百叶图、修改图片DPI等图片处理其他工具类方法。
图片转字符图片工具类,支持 Gif 动画、图片合并、图片加水印、文字消除锯齿、图片无损保存、修改图片DPI等图片处理其他工具类方法。详情请看README.md文件说明。 图片转字符图片工具类,支持 Gif 动画、图片...
Some useful operations written in java to change the page of pdf file to pictures. describe:Sometimes we need to extract a page of pdf file to a new pdf file or change each page to pictures with high ...
SourceAFIS是一种指纹识别引擎,可获取一对人类指纹图像并返回其相似度分数。 它可以进行1:1比较以及高效的1:N搜索。 这是SourceAFIS算法的Java实现。 文档: , , , 下载:请参阅页面 资料来源: , 问题:...
android笔试题目汇总及答案: 1.关于线程下面描述错误的是:( D ) ... PNG图像格式没有存储DPI信息 4. 下列哪一项属于J2ME中所使用的虚拟机类型 : ( C ) A. JVM (java虚拟机) B. DVM C. CVM(或KVM) D. Card VM
大家在PS中绘图,经常需要打印。如某某地方需要多少多少厘米,而照片的单位为像素,却不知道有多少厘米,又如一张图片,是800x600的,去饿不知道打印出来有多大。这些所有的问题,这个工具都能解决,只需提供DPI。