Package gov.lanl.adore.djatoka.util

Examples of gov.lanl.adore.djatoka.util.ImageRecord


    }
    return ir;
  }
 
  private ImageRecord getRemoteImage(String rftId) throws ResolverException {
    ImageRecord ir = remoteImgs.get(rftId);
    if (ir == null || !new File(ir.getImageFile()).exists()) {
      try {
        URI uri = new URI(rftId);
        if (dim.getProcessingList().contains(uri.toString())) {
          int i = 0;
          Thread.sleep(1000);
          while (dim.getProcessingList().contains(uri)
              && i < (5 * 60)) {
            Thread.sleep(1000);
            i++;
          }
          if (remoteImgs.containsKey(rftId))
            return remoteImgs.get(rftId);
        }
        File f = dim.convert(uri);
        ir = new ImageRecord(rftId, f.getAbsolutePath());
        if (f.length() > 0)
          remoteImgs.put(rftId, ir);
        else
          throw new ResolverException(
              "An error occurred processing file:"
View Full Code Here


                }
                img = jp2Local;
            } else {
                try {
                    final IExtract ex = new KduExtractExe();
                    ex.getMetadata(new ImageRecord(uri.toString(), img.getAbsolutePath()));
                } catch (final DjatokaException e) {
                    throw new DjatokaException("Unknown JP2/JPX file format");
                }
            }
        } catch (final Exception e) {
View Full Code Here

        try {
            inputFile = File.createTempFile("tmp", ".tif");
            inputFile.deleteOnExit();
            IOUtils.copyStream(input, new FileOutputStream(inputFile));
            if (params.getLevels() == 0) {
                ImageRecord dim = ImageRecordUtils.getImageDimensions(inputFile.getAbsolutePath());
                params.setLevels(ImageProcessingUtils.getLevelCount(dim.getWidth(), dim.getHeight()));
                dim = null;
            }
        } catch (IOException e) {
            LOGGER.error(e.getMessage(), e);
            throw new DjatokaException(e.getMessage(), e);
View Full Code Here

        File inputFile = null;
        try {
            inputFile = File.createTempFile("tmp", ".tif");
            IOUtils.copyStream(input, new FileOutputStream(inputFile));
            if (params.getLevels() == 0) {
                ImageRecord dim = ImageRecordUtils.getImageDimensions(inputFile.getAbsolutePath());
                params.setLevels(ImageProcessingUtils.getLevelCount(dim.getWidth(), dim.getHeight()));
                dim = null;
            }
        } catch (IOException e1) {
            LOGGER.error("Unexpected file format; expecting uncompressed TIFF", e1);
            throw new DjatokaException("Unexpected file format; expecting uncompressed TIFF");
View Full Code Here

                throw new DjatokaException("Unrecognized file format: " + e.getMessage());
            }
        }

        if (params.getLevels() == 0) {
            ImageRecord dim = ImageRecordUtils.getImageDimensions(inputFile.getAbsolutePath());
            params.setLevels(ImageProcessingUtils.getLevelCount(dim.getWidth(), dim.getHeight()));
            dim = null;
        }

        File outFile = new File(output);
        String command = getKduCompressCommand(new File(input).getAbsolutePath(), outFile.getAbsolutePath(), params);
View Full Code Here

                LOGGER.debug("Service has a valid region request: {}", region);
            }

            try {
                final Referent referent = contextObject.getReferent();
                final ImageRecord r = ReferentManager.getImageRecord(referent);

                if (r != null) {
                    if (LOGGER.isDebugEnabled()) {
                        LOGGER.debug("Retrieving ImageRecord for: {}", r.getIdentifier());
                    }

                    if (transformCheck && transform != null) {
                        final HashMap<String, String> instProps = new HashMap<String, String>();
                        if (r.getInstProps() != null) {
                            instProps.putAll(r.getInstProps());
                        }
                        int l = contextObject.getRequesters().length;
                        final Requester[] req = contextObject.getRequesters();
                        if (l > 0 && req[0].getDescriptors().length > 0) {
                            final String rs = req[0].getDescriptors()[0].toString();
                            instProps.put(PROPS_REQUESTER, rs);
                        }
                        l = contextObject.getReferringEntities().length;
                        ReferringEntity[] rea;
                        rea = contextObject.getReferringEntities();
                        if (l > 0 && rea[0].getDescriptors().length > 0) {
                            instProps.put(PROPS_REFERRING_ENTITY, contextObject.getReferringEntities()[0]
                                    .getDescriptors()[0].toString());
                        }
                        if (instProps.size() > 0) {
                            transform.setInstanceProps(instProps);
                        }
                        params.setTransform(transform);
                    }
                    if (!cacheTiles || !isCacheable(params)) {
                        if (LOGGER.isWarnEnabled()) {
                            LOGGER.warn("Not using the OpenURL layer cache");
                        }

                        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
                        extractor.extractImage(r.getImageFile(), baos, params, format);
                        bytes = baos.toByteArray();
                        baos.close();
                    } else {
                        final String ext = getExtension(format);
                        final String hash = getTileHash(r, params);
                        String file = tileCache.get(hash + ext);
                        File f;

                        id = r.getIdentifier();

                        if (file == null || !(f = new File(file)).exists() && f.length() > 0) {
                            if (cacheDir != null) {
                                final File cacheDirFile = new File(cacheDir);

                                // If our cache dir doesn't exist, create it
                                if (!cacheDirFile.exists()) {
                                    if (!cacheDirFile.mkdirs() && LOGGER.isWarnEnabled()) {
                                        LOGGER.warn("Dirs not created: {}", cacheDirFile);
                                    }
                                }

                                f = File.createTempFile("cache" + hash.hashCode() + "-", "." + ext, cacheDirFile);
                            } else {
                                f = File.createTempFile("cache" + hash.hashCode() + "-", "." + ext);
                            }

                            if (LOGGER.isDebugEnabled()) {
                                LOGGER.debug("Temp file created: {}", f);
                            }

                            f.deleteOnExit();
                            file = f.getAbsolutePath();
                            djatokaCacheFile = file;

                            extractor.extractImage(r.getImageFile(), file, params, format);

                            if (tileCache.get(hash + ext) == null) {
                                tileCache.put(hash + ext, file);
                                bytes = IOUtils.getBytesFromFile(f);
View Full Code Here

        if (r == null) {
            throw new DjatokaException("ImageRecord is null");
        }

        if (r.getImageFile() == null && r.getObject() != null) {
            ImageRecord ir = getMetadata(getStreamFromObject(r.getObject()));
            ir.setObject(r.getObject());
            return ir;
        }

        File f = new File(r.getImageFile());
View Full Code Here

        return null;
    }

    private final ArrayList<Double> getRegionMetadata(InputStream input, DjatokaDecodeParam params)
            throws DjatokaException {
        ImageRecord r = getMetadata(input);
        return getRegionMetadata(r, params);
    }
View Full Code Here

        return getRegionMetadata(r, params);
    }

    private final ArrayList<Double> getRegionMetadata(String input, DjatokaDecodeParam params)
            throws DjatokaException {
        ImageRecord r = getMetadata(new ImageRecord(input));
        return getRegionMetadata(r, params);
    }
View Full Code Here

        try {
            final ObjectMapper mapper = new ObjectMapper();
            final ObjectNode rootNode = mapper.createObjectNode();
            final IExtract jp2 = new KduExtractExe();

            ImageRecord r = ReferentManager.getImageRecord(contextObject.getReferent());
            r = jp2.getMetadata(r);

            rootNode.put("identifier", r.getIdentifier());
            rootNode.put("imagefile", r.getImageFile());
            rootNode.put("width", r.getWidth());
            rootNode.put("height", r.getHeight());
            rootNode.put("dwtLevels", r.getDWTLevels());
            rootNode.put("levels", r.getLevels());
            rootNode.put("compositingLayerCount", r.getCompositingLayerCount());

            mapper.writeValue(baos, rootNode);
        } catch (final DjatokaException e) {
            responseFormat = "text/plain";
            status = HttpServletResponse.SC_NOT_FOUND;
View Full Code Here

TOP

Related Classes of gov.lanl.adore.djatoka.util.ImageRecord

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.