public static ImageTypeSpecifier createFromBufferedImageType(final int bufferedImageType) { return ImageTypeSpecifier.createFromBufferedImageType(bufferedImageType); }
case RGB: if (header.getTransferType() == DataBuffer.TYPE_BYTE) { specifiers.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_3BYTE_BGR)); specifiers.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_BGR)); specifiers.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB)); specifiers.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_4BYTE_ABGR)); specifiers.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_4BYTE_ABGR_PRE));
@Override public Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException { readIFD(imageIndex); ImageTypeSpecifier rawType = getRawImageType(imageIndex); Set<ImageTypeSpecifier> specs = new LinkedHashSet<>(5); // TODO: Based on raw type, we can probably convert to most RGB types at least, maybe gray etc if (rawType.getColorModel().getColorSpace().getType() == ColorSpace.TYPE_RGB) { if (rawType.getNumBands() == 3 && rawType.getBitsPerBand(0) == 8) { specs.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_3BYTE_BGR)); // specs.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_BGR)); // specs.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB)); } else if (rawType.getNumBands() == 4 && rawType.getBitsPerBand(0) == 8) { specs.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_4BYTE_ABGR)); // specs.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_ARGB)); specs.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_4BYTE_ABGR_PRE)); } } specs.add(rawType); return specs.iterator(); }
private List<ImageTypeSpecifier> createIllegalTypes(Iterator<ImageTypeSpecifier> pValidTypes) { List<ImageTypeSpecifier> allTypes = new ArrayList<>(); for (int i = BufferedImage.TYPE_INT_RGB; i < BufferedImage.TYPE_BYTE_INDEXED; i++) { allTypes.add(ImageTypeSpecifier.createFromBufferedImageType(i)); } List<ImageTypeSpecifier> illegalTypes = new ArrayList<>(allTypes); while (pValidTypes.hasNext()) { ImageTypeSpecifier valid = pValidTypes.next(); boolean removed = illegalTypes.remove(valid); // TODO: 4BYTE_ABGR (6) and 4BYTE_ABGR_PRE (7) is essentially the same type... // #$@*%$! ImageTypeSpecifier.equals is not well-defined if (!removed) { for (Iterator<ImageTypeSpecifier> iterator = illegalTypes.iterator(); iterator.hasNext();) { ImageTypeSpecifier illegalType = iterator.next(); if (illegalType.getBufferedImageType() == valid.getBufferedImageType()) { iterator.remove(); } } } } return illegalTypes; }
ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_RGB); IIOMetadata metadata = writer.getDefaultImageMetadata(typeSpecifier, iwp); if (metadata.isReadOnly() || !metadata.isStandardMetadataFormatSupported()) {
@Test public void testCreateFromBufferedImageType() { for (int type = BufferedImage.TYPE_INT_RGB; type < BufferedImage.TYPE_BYTE_INDEXED; type++) { assertEquals( ImageTypeSpecifier.createFromBufferedImageType(type), ImageTypeSpecifiers.createFromBufferedImageType(type) ); } }
@Test(expected = IIOException.class) public void testGetDestinationParamIllegalDestinationType() throws IIOException { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_BYTE_GRAY)); ImageReaderBase.getDestination(param, TYPES.iterator(), 6, 7); }
@Test public void testGetDestinationParamGoodDestinationType() throws IIOException { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_ARGB)); BufferedImage destination = ImageReaderBase.getDestination(param, TYPES.iterator(), 6, 7); assertEquals(BufferedImage.TYPE_INT_ARGB, destination.getType()); assertEquals(6, destination.getWidth()); assertEquals(7, destination.getHeight()); }
@Test(expected = IIOException.class) public void testGetDestinationParamIllegalDestinationTypeAlt() throws IIOException { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_BGR)); ImageReaderBase.getDestination(param, TYPES.iterator(), 6, 7); }
public static ImageTypeSpecifier createFromBufferedImageType(final int bufferedImageType) { return ImageTypeSpecifier.createFromBufferedImageType(bufferedImageType); }
@Test public void testHasExplicitDestinationParamWithDestinationType() { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_ARGB)); assertTrue(ImageReaderBase.hasExplicitDestination(param)); }
/** * Returns the iterator for available image types. * * @param imageIndex - The page number. * * @return An {@link Iterator} for available image types. * * @throws IOException if an error occurs reading the height information from the input source. */ @Override public Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException { List<ImageTypeSpecifier> l = new ArrayList<ImageTypeSpecifier>(); l.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_BYTE_INDEXED)); return l.iterator(); }
/** * Returns the iterator for available image types. * * @param imageIndex - The page number. * * @return An {@link Iterator} for available image types. * * @throws IOException if an error occurs reading the height information from the input source. */ @Override public Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException { List<ImageTypeSpecifier> l = new ArrayList<ImageTypeSpecifier>(); l.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_BYTE_INDEXED)); return l.iterator(); }
public Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException { readFile(); checkIndex(imageIndex); // Create a List of ImageTypeSpecifiers that identify the possible image // types to which the single JBIG2 image can be decoded. An // ImageTypeSpecifier is used with ImageReader's getDestination() method // to return an appropriate BufferedImage that contains the decoded // image, and is accessed by an application. List<ImageTypeSpecifier> l = new ArrayList<ImageTypeSpecifier>(); // The JBIG2 reader only uses a single List entry. This entry describes // a // BufferedImage of TYPE_INT_RGB, which is a commonly used image type. l.add(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_BYTE_BINARY)); // Return an iterator that retrieves elements from the list. return l.iterator(); }
@Test(expected = IIOException.class) public void testGetDestinationParamIllegalDestinationTypeAlt() throws IIOException { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_BGR)); ImageReaderBase.getDestination(param, TYPES.iterator(), 6, 7); }
@Test(expected = IIOException.class) public void testGetDestinationParamIllegalDestinationType() throws IIOException { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_BYTE_GRAY)); ImageReaderBase.getDestination(param, TYPES.iterator(), 6, 7); }
@Test public void testCreateFromBufferedImageType() { for (int type = BufferedImage.TYPE_INT_RGB; type < BufferedImage.TYPE_BYTE_INDEXED; type++) { assertEquals( ImageTypeSpecifier.createFromBufferedImageType(type), ImageTypeSpecifiers.createFromBufferedImageType(type) ); } }
@Test public void testGetDestinationParamGoodDestinationType() throws IIOException { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_ARGB)); BufferedImage destination = ImageReaderBase.getDestination(param, TYPES.iterator(), 6, 7); assertEquals(BufferedImage.TYPE_INT_ARGB, destination.getType()); assertEquals(6, destination.getWidth()); assertEquals(7, destination.getHeight()); }
@Test public void testHasExplicitDestinationParamWithDestinationType() { ImageReadParam param = new ImageReadParam(); param.setDestinationType(ImageTypeSpecifier.createFromBufferedImageType(BufferedImage.TYPE_INT_ARGB)); assertTrue(ImageReaderBase.hasExplicitDestination(param)); }
private static IIOMetadata metadata(final ImageWriter writer, final ImageWriteParam writeParam) throws IIOInvalidTreeException { final ImageTypeSpecifier typeSpecifier = createFromBufferedImageType(BufferedImage.TYPE_INT_RGB); final IIOMetadata metadata = writer.getDefaultImageMetadata(typeSpecifier, writeParam); // Create metadata final IIOMetadataNode root = new IIOMetadataNode(FORMAT_NAME); final IIOMetadataNode text = new IIOMetadataNode("tEXt"); final IIOMetadataNode textEntry = new IIOMetadataNode("tEXtEntry"); textEntry.setAttribute("keyword", JIRA_SYSTEM_IMAGE_TYPE); textEntry.setAttribute("value", AVATAR_SYSTEM_IMAGE_TYPE); textEntry.setAttribute("encoding", "UTF-8"); textEntry.setAttribute("language", "EN"); textEntry.setAttribute("compression", "none"); text.appendChild(textEntry); root.appendChild(text); metadata.mergeTree(FORMAT_NAME, root); return metadata; } }