@Override public List<StreamFilterAdapter> getFilterAdapters() { if (imageXObject != null && imageXObject.getCOSObject() != null) { COSBase base = imageXObject.getCOSStream().getDictionaryObject(COSName.DECODE_PARMS); List<StreamFilterAdapter> res = new ArrayList<>(); if (base instanceof COSDictionary) { res.add(new PBStreamFilterAdapter(base)); } else if (base instanceof COSArray) { for (COSBase baseElem : (COSArray) base) { if (baseElem instanceof COSDictionary) { res.add(new PBStreamFilterAdapter(baseElem)); } else { res.add(null); } } } return Collections.unmodifiableList(res); } return Collections.emptyList(); }
private static void processImageAlternates(PDImageXObjectProxy xObject) { COSBase alternates = ((COSDictionary) xObject.getCOSObject()).getDictionaryObject(COSName.getPDFName("Alternates")); if (alternates instanceof COSArray) { for (COSBase obj : (COSArray) alternates) { if (obj instanceof COSDictionary) { COSBase image = ((COSDictionary) obj).getDictionaryObject(COSName.IMAGE); if (image instanceof COSStream) { processXObject(new PDImageXObjectProxy(new PDStream((COSStream) image), null)); } } } } }
private void parseImageXObject(PDImageXObjectProxy xobj, String id) { COSBase baseColorSpace = ((COSStream) xobj.getCOSObject()).getItem(COSName.CS); if (baseColorSpace == null) { baseColorSpace = ((COSStream) xobj.getCOSObject()).getItem(COSName.COLORSPACE); COSBase mask = xobj.getCOSStream().getDictionaryObject(COSName.MASK); if (mask instanceof COSStream) { COSBase maskBase = ((COSStream) xobj.getCOSObject()).getItem(COSName.MASK); idMask = getId(maskBase, FeatureObjectType.IMAGE_XOBJECT); if (checkIDBeforeProcess(idMask)) { COSBase sMask = xobj.getCOSStream().getDictionaryObject(COSName.SMASK); if (sMask instanceof COSStream) { COSBase sMaskBase = ((COSStream) xobj.getCOSObject()).getItem(COSName.SMASK); idSMask = getId(sMaskBase, FeatureObjectType.IMAGE_XOBJECT); if (checkIDBeforeProcess(idSMask)) {