private static ImageReaderFactory initDefault() { ImageReaderFactory factory = new ImageReaderFactory(); String name = System.getProperty(ImageReaderFactory.class.getName(), "org/dcm4che3/imageio/codec/ImageReaderFactory.properties"); try { factory.load(name); } catch (Exception e) { throw new RuntimeException( "Failed to load Image Reader Factory configuration from: " + name, e); } return factory; }
public static ImageReaderParam getImageReaderParam(String tsuid) { return getDefault().get(tsuid); }
public static boolean canDecompress(String tsuid) { return getDefault().contains(tsuid); }
public static ImageReader getImageReader(ImageReaderParam param) { return Boolean.getBoolean("org.dcm4che3.imageio.codec.useServiceLoader") ? getImageReaderFromServiceLoader(param) : getImageReaderFromImageIOServiceRegistry(param); }
ImageReaderFactory factory = new ImageReaderFactory(); NamingEnumeration<SearchResult> ne = config.search(imageReadersDN, "(objectclass=dcmImageReader)"); SearchResult sr = ne.next(); Attributes attrs = sr.getAttributes(); factory.put( LdapUtils.stringValue(attrs.get("dicomTransferSyntax"), null), new ImageReaderParam(
private void initDecompressor() { decompressorParam = ImageReaderFactory.getImageReaderParam(srcTransferSyntax); if (decompressorParam == null) throw new UnsupportedOperationException( "Unsupported Transfer Syntax: " + srcTransferSyntax); this.decompressor = ImageReaderFactory.getImageReader(decompressorParam); LOG.debug("Decompressor: {}", decompressor.getClass().getName()); this.decompressParam = decompressor.getDefaultReadParam(); }
private void merge(ConfigurationChanges diffs, ImageReaderFactory prev, ImageReaderFactory factory, String imageReadersDN) throws NamingException { for (Entry<String, ImageReaderParam> entry : prev.getEntries()) { String tsuid = entry.getKey(); if (factory.get(tsuid) == null) { String dn = dnOf(tsuid, imageReadersDN); config.destroySubcontext(dn); ConfigurationChanges.addModifiedObject(diffs, dn, ConfigurationChanges.ChangeType.D); } } for (Entry<String, ImageReaderParam> entry : factory.getEntries()) { String tsuid = entry.getKey(); String dn = dnOf(tsuid, imageReadersDN); ImageReaderParam prevParam = prev.get(tsuid); if (prevParam == null) { ConfigurationChanges.ModifiedObject ldapObj = ConfigurationChanges.addModifiedObject(diffs, dn, ConfigurationChanges.ChangeType.C); config.createSubcontext(dn, storeTo(ConfigurationChanges.nullifyIfNotVerbose(diffs, ldapObj), tsuid, entry.getValue(), new BasicAttributes(true))); } else { ConfigurationChanges.ModifiedObject ldapObj = ConfigurationChanges.addModifiedObject(diffs, dn, ConfigurationChanges.ChangeType.U); config.modifyAttributes(dn, storeDiffs(ldapObj, prevParam, entry.getValue(), new ArrayList<ModificationItem>())); ConfigurationChanges.removeLastIfEmpty(diffs, ldapObj); } } }
private void store(ConfigurationChanges diffs, String deviceDN, ImageReaderFactory factory) throws NamingException { String imageReadersDN = CN_IMAGE_READER_FACTORY + deviceDN; ConfigurationChanges.ModifiedObject ldapObj = ConfigurationChanges.addModifiedObject(diffs, imageReadersDN, ConfigurationChanges.ChangeType.C); config.createSubcontext(imageReadersDN, LdapUtils.attrs("dcmImageReaderFactory", "cn", "Image Reader Factory")); for (Entry<String, ImageReaderParam> entry : factory.getEntries()) { String tsuid = entry.getKey(); String dn = dnOf(tsuid, imageReadersDN); ConfigurationChanges.ModifiedObject ldapObj1 = ConfigurationChanges.addModifiedObjectIfVerbose(diffs, dn, ConfigurationChanges.ChangeType.C); config.createSubcontext(dn, storeTo(ldapObj1, tsuid, entry.getValue(), new BasicAttributes(true))); } }
return false; ImageReaderFactory factory = new ImageReaderFactory(); reader.next(); reader.expect(JsonParser.Event.START_ARRAY); factory.put(tsuid, new ImageReaderFactory.ImageReaderParam(formatName, className, patchJPEGLS, imageReadParam));
public void setCompressParams(Property[] imageWriteParams) { int count = 0; for (Property property : cat(compressorParam.getImageWriteParams(), imageWriteParams)) { String name = property.getName(); if (name.equals("maxPixelValueError")) this.maxPixelValueError = ((Number) property.getValue()).intValue(); else if (name.equals("avgPixelValueBlockSize")) this.avgPixelValueBlockSize = ((Number) property.getValue()).intValue(); else { if (count++ == 0) compressParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); property.setAt(compressParam); } } if (maxPixelValueError >= 0) { ImageReaderFactory.ImageReaderParam readerParam = ImageReaderFactory.getImageReaderParam(destTransferSyntax); if (readerParam == null) throw new UnsupportedOperationException( "Unsupported Transfer Syntax: " + destTransferSyntax); this.verifier = ImageReaderFactory.getImageReader(readerParam); this.verifyParam = verifier.getDefaultReadParam(); LOG.debug("Verifier: {}", verifier.getClass().getName()); } }
@Override protected void storeTo(Device device, JsonWriter writer) { ImageReaderExtension ext = device.getDeviceExtension(ImageReaderExtension.class); if (ext == null) return; writer.writeStartArray("dcmImageReader"); for (Map.Entry<String, ImageReaderFactory.ImageReaderParam> entry : ext.getImageReaderFactory().getEntries()) { writer.writeStartObject(); String tsuid = entry.getKey(); ImageReaderFactory.ImageReaderParam param = entry.getValue(); writer.writeNotNullOrDef("dicomTransferSyntax", tsuid, null); writer.writeNotNullOrDef("dcmIIOFormatName", param.formatName, null); writer.writeNotNullOrDef("dcmJavaClassName", param.className, null); writer.writeNotNullOrDef("dcmPatchJPEGLS", param.patchJPEGLS, null); writer.writeNotEmpty("dcmImageReadParam", param.imageReadParams); writer.writeEnd(); } writer.writeEnd(); }
return false; ImageReaderFactory factory = new ImageReaderFactory(); reader.next(); reader.expect(JsonParser.Event.START_ARRAY); factory.put(tsuid, new ImageReaderFactory.ImageReaderParam(formatName, className, patchJPEGLS, imageReadParam));
ImageReaderFactory.getImageReaderParam(tsuid); if (param == null) throw new UnsupportedOperationException("Unsupported Transfer Syntax: " + tsuid); pmiAfterDecompression = param.pmiAfterDecompression(pmi); this.rle = tsuid.equals(UID.RLELossless); this.decompressor = ImageReaderFactory.getImageReader(param); LOG.debug("Decompressor: {}", decompressor.getClass().getName()); this.patchJpegLS = param.patchJPEGLS;
@Override protected void storeTo(Device device, JsonWriter writer) { ImageReaderExtension ext = device.getDeviceExtension(ImageReaderExtension.class); if (ext == null) return; writer.writeStartArray("dcmImageReader"); for (Map.Entry<String, ImageReaderFactory.ImageReaderParam> entry : ext.getImageReaderFactory().getEntries()) { writer.writeStartObject(); String tsuid = entry.getKey(); ImageReaderFactory.ImageReaderParam param = entry.getValue(); writer.writeNotNullOrDef("dicomTransferSyntax", tsuid, null); writer.writeNotNullOrDef("dcmIIOFormatName", param.formatName, null); writer.writeNotNullOrDef("dcmJavaClassName", param.className, null); writer.writeNotNullOrDef("dcmPatchJPEGLS", param.patchJPEGLS, null); writer.writeNotEmpty("dcmImageReadParam", param.imageReadParams); writer.writeEnd(); } writer.writeEnd(); }
ImageReaderFactory.getImageReaderParam(tsuid); if (param == null) throw new UnsupportedOperationException( "Unsupported Transfer Syntax: " + tsuid); this.decompressor = ImageReaderFactory.getImageReader(param); LOG.debug("Decompressor: {}", decompressor.getClass().getName()); this.readParam = decompressor.getDefaultReadParam();
ImageReaderFactory.getImageReaderParam(tsuid); if (readerParam == null) throw new UnsupportedOperationException( "Unsupported Transfer Syntax: " + tsuid); this.verifier = ImageReaderFactory.getImageReader(readerParam); this.verifyParam = verifier.getDefaultReadParam(); LOG.debug("Verifier: {}", verifier.getClass().getName());