MCPcopy Index your code
hub / github.com/benfry/processing4 / imageioDPI

Method imageioDPI

core/src/processing/awt/ShimAWT.java:643–678  ·  view source on GitHub ↗
(ImageWriter writer, ImageWriteParam param, double dpi)

Source from the content-addressed store, hash-verified

641
642
643 @SuppressWarnings("SameParameterValue")
644 static private IIOMetadata imageioDPI(ImageWriter writer, ImageWriteParam param, double dpi) {
645 // http://stackoverflow.com/questions/321736/how-to-set-dpi-information-in-an-image
646 ImageTypeSpecifier typeSpecifier =
647 ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB);
648 IIOMetadata metadata =
649 writer.getDefaultImageMetadata(typeSpecifier, param);
650
651 if (!metadata.isReadOnly() && metadata.isStandardMetadataFormatSupported()) {
652 // for PNG, it's dots per millimeter
653 double dotsPerMilli = dpi / 25.4;
654
655 IIOMetadataNode horiz = new IIOMetadataNode("HorizontalPixelSize");
656 horiz.setAttribute("value", Double.toString(dotsPerMilli));
657
658 IIOMetadataNode vert = new IIOMetadataNode("VerticalPixelSize");
659 vert.setAttribute("value", Double.toString(dotsPerMilli));
660
661 IIOMetadataNode dim = new IIOMetadataNode("Dimension");
662 dim.appendChild(horiz);
663 dim.appendChild(vert);
664
665 IIOMetadataNode root = new IIOMetadataNode("javax_imageio_1.0");
666 root.appendChild(dim);
667
668 try {
669 metadata.mergeTree("javax_imageio_1.0", root);
670 return metadata;
671
672 } catch (IIOInvalidTreeException e) {
673 System.err.println("Could not set the DPI of the output image");
674 e.printStackTrace();
675 }
676 }
677 return null;
678 }
679
680
681 // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Callers 1

saveImageIOMethod · 0.95

Calls 5

isReadOnlyMethod · 0.80
appendChildMethod · 0.80
toStringMethod · 0.45
printlnMethod · 0.45
printStackTraceMethod · 0.45

Tested by

no test coverage detected