1

画像の DPI を 96 DPI から 299.99 DPI に増やしました。しかし、それはイメージには何の影響も与えません。ズームしても画像はブレます。画像の鮮明度を上げるためにDPIを上げる方法は?

String dotPerMeter = String.valueOf((int) (300 / 0.0254));//300 は必要な dpi です Iterator imageWriters = ImageIO.getImageWritersByFormatName("png");

            while (imageWriters.hasNext()) {
                    ImageWriter iw = (ImageWriter)imageWriters.next();

                    ImageWriteParam iwp = iw.getDefaultWriteParam();
                    IIOMetadata metadata = iw.getDefaultImageMetadata(new ImageTypeSpecifier(image), iwp);

                    String pngFormatName = metadata.getNativeMetadataFormatName();
                    IIOMetadataNode pngNode =
                            (IIOMetadataNode) metadata.getAsTree(pngFormatName);

                    IIOMetadataNode physNode = null;
                    NodeList childNodes = pngNode.getElementsByTagName("pHYs");
                    if (childNodes.getLength() == 0) {
                            physNode = new IIOMetadataNode("pHYs");
                            pngNode.appendChild(physNode);
                    } else if (childNodes.getLength() == 1) {
                            physNode = (IIOMetadataNode) childNodes.item(0);
                    } else {
                            throw new IllegalStateException("Don't know what to do with multiple pHYs nodes");
                    }
                    physNode.setAttribute("pixelsPerUnitXAxis", dotsPerMeter);
                    physNode.setAttribute("pixelsPerUnitYAxis", dotsPerMeter);
                    physNode.setAttribute("unitSpecifier", "meter");
                    try {
                            metadata.setFromTree(pngFormatName, pngNode);
                            IIOImage iioImage = new IIOImage(image, null, metadata);
                            File file = new File(KIT_ID + "_" + KIT_VER + "_newDPI.png");
                            ImageOutputStream ios = ImageIO.createImageOutputStream(file);

                            iw.setOutput(ios);                            
                            iw.write(iioImage);
                            ios.flush();
                            ios.close();
                    } catch (Exception e) {
                            e.printStackTrace();
                            continue;
                    }

                    break;
            }
4

1 に答える 1

0

ぼやけた画像に dpi を追加しても、画像のピクセルが分割されるだけで鮮明になるわけではありませんが、画像に詳細が作成されることはありません。ただし、写真をよりシャープに見せるのに役立つアルゴリズムがいくつかあります。

于 2012-11-21T10:43:52.257 に答える