Package gov.lanl.adore.djatoka.util

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


     * @throws ResolverException
     */
    @Override
    public ImageRecord getImageRecord(String rftId) throws ResolverException {
        try {
            ImageRecord ir = null;
            if (isResolvableURI(rftId)) {
                ir = getRemoteImage(rftId);
            } else {
                ir = getLocalImage(rftId);
            }
View Full Code Here


       
        File bit = new File(bitstreamPath);
        if (!bit.exists())
            throw new ResolverException("An error occurred processing file: " + bitstreamPath);
       
        ImageRecord ir = new ImageRecord(rftId, bitstreamPath);
        imgs.put(rftId, ir);
        return ir;
    }
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,e);
      throw new DjatokaException(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)
View Full Code Here

    public final ImageRecord getMetadata(BufferedImage bi) throws DjatokaException {
    if (bi == null)
      throw new DjatokaException("Image Does Not Exist");

        try {
            ImageRecord r = new ImageRecord();

      r.setWidth(bi.getWidth());
      r.setHeight(bi.getHeight());

            int minLevels = 5;
      r.setDWTLevels(minLevels); //FIXME
            int djatokaLevels = ImageProcessingUtils.getLevelCount(r.getWidth(), r.getHeight());
            r.setLevels((djatokaLevels > minLevels) ? minLevels : djatokaLevels);

            r.setBitDepth(bi.getColorModel().getPixelSize());
            r.setNumChannels(bi.getColorModel().getNumColorComponents());
//            r.setCompositingLayerCount(frames[0]);
            return r;
    } catch (Exception e) {
      throw new DjatokaException(e);
    }
View Full Code Here

  public BufferedImage process(InputStream input, DjatokaDecodeParam params)
            throws DjatokaException {
        try {
            BufferedImage bi = ImageIO.read(input);

            ImageRecord r = getMetadata(bi);
            setLevelReduction(r, params);
            if (params.getLevelReductionFactor() > 0) {
                int reduce = 1 << params.getLevelReductionFactor(); // => image.size() / 2^r: reduce 0 means image/1, reduce 1 means image/2, etc.
                bi = ImageProcessingUtils.scale(bi, 1.0 / reduce);
            }
View Full Code Here

    if (bi == null)
      throw new DjatokaException("Image Does Not Exist");

        logger.debug("getMetadata(BufferedImage): " + bi.getWidth());
        try {
            ImageRecord r = new ImageRecord();

      r.setWidth(bi.getWidth());
      r.setHeight(bi.getHeight());

            r.setDWTLevels(DEFAULT_LEVELS);
            r.setLevels(DEFAULT_LEVELS);

            r.setBitDepth(bi.getColorModel().getPixelSize());
            r.setNumChannels(bi.getColorModel().getNumColorComponents());
            //r.setCompositingLayerCount(getNumberOfPages(r)); // 'bi' refers to just one page extracted from the PDF file.
            //logger.debug("r2: "+r.toString());
           
            //TODO
           
View Full Code Here

   * @param rftId identifier of the image to be resolved
   * @return ImageRecord instance containing resolvable metadata
   * @throws ResolverException
   */
  public ImageRecord getImageRecord(String rftId) throws ResolverException {
    ImageRecord ir = imgs.get(rftId);
    if (ir == null && isResolvableURI(rftId)) {
      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 (imgs.containsKey(rftId))
              return imgs.get(rftId);
        }
        File f = dim.convert(uri);
        ir = new ImageRecord(rftId, f.getAbsolutePath());
        // LRU cache will delete oldest file when max is reached,
        // will also remove object from imgs and remoteCacheMap
        remoteCacheMap.put(rftId, f.getAbsolutePath());
        if (f.length() > 0)
            imgs.put(rftId, ir);
        else
          throw new ResolverException("An error occurred processing file:" + uri.toURL().toString());
      } catch (Exception e) {
        logger.error(e,e);
        throw new ResolverException(e);
      }
    } else if (isResolvableURI(rftId) && !new File(ir.getImageFile()).exists()) {
        // Handle ImageRecord in cache, but file does not exist on the file system
        imgs.remove(rftId);
        remoteCacheMap.remove(rftId);
        return getImageRecord(rftId);
    }
View Full Code Here

            if (row == null)
                break;
      String[] v = row.split("\t");
      if (v.length < 2)
        System.out.println("Invalid format for Record Map; expects tab delimited id\tfilepath");
      ImageRecord r = new ImageRecord(v[0], v[1]);
      map.put(v[0], r);
    }
    return map;
  }
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.