Examples of ImageRecord


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

     * @return An image record
     */
    @Override
    public ImageRecord getImageRecord(final String aRequest) throws ResolverException {
        final String decodedRequest = decode(aRequest);
        ImageRecord image;

        // Check to see if the image is resolvable from a remote source
        if (isResolvableURI(decodedRequest)) {
            String referent;

View Full Code Here

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

    private boolean isResolvableURI(final String aReferentID) {
        return aReferentID.startsWith("http://") || aReferentID.startsWith("file://");
    }

    private ImageRecord getCachedImage(final String aReferentID) {
        ImageRecord image = null;

        if (isResolvableURI(aReferentID)) {
            return image;
        }

        if (LOGGER.isDebugEnabled()) {
            LOGGER.debug("Checking in Pairtree file system for: {}", aReferentID);
        }

        try {
            final PairtreeRoot pairtree = new PairtreeRoot(myJP2Dir);
            final PairtreeObject dir = pairtree.getObject(aReferentID);
            final String filename = PairtreeUtils.encodeID(aReferentID);
            final File file = new File(dir, filename);

            if (file.exists()) {
                image = new ImageRecord();
                image.setIdentifier(aReferentID);
                image.setImageFile(file.getAbsolutePath());

                if (LOGGER.isDebugEnabled()) {
                    LOGGER.debug("JP2 found in Pairtree cache: {}", file.getAbsolutePath());
                }
            } else if (LOGGER.isDebugEnabled()) {
View Full Code Here

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

        int status = HttpServletResponse.SC_OK;
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try {
            baos = new ByteArrayOutputStream();
            IExtract jp2 = new KduExtractExe();
            ImageRecord r = ReferentManager.getImageRecord(contextObject.getReferent());
            String[] xml = jp2.getXMLBox(r);
            StringBuffer sb = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
            sb.append("<jp2:JP2XML ");
            sb.append("xmlns:jp2=\"http://library.lanl.gov/2008-11/aDORe/JP2XML/\" ");
            sb.append("xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"  ");
View Full Code Here

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

        return image;
    }

    private ImageRecord getRemoteImage(final String aReferent, final String aURL) {
        ImageRecord image = null;

        try {
            final URI uri = new URI(aURL);
            File imageFile;

            // Check to see if it's already in the processing queue
            if (myMigrator.getProcessingList().contains(aReferent)) {
                Thread.sleep(1000);
                int index = 0;

                while (myMigrator.getProcessingList().contains(aReferent) && index < (5 * 60)) {
                    Thread.sleep(1000);
                    index++;
                }

                if (myRemoteImages.containsKey(aReferent)) {
                    if (LOGGER.isDebugEnabled()) {
                        LOGGER.debug("Retrieving {} from remote images cache", aReferent);
                    }

                    return myRemoteImages.get(aReferent);
                }
            }

            imageFile = myMigrator.convert(aReferent, uri);
            image = new ImageRecord(aReferent, imageFile.getAbsolutePath());

            if (imageFile.length() > 0) {
                myRemoteImages.put(aReferent, image);
            } else {
                throw new ResolverException("An error occurred processing file: " + uri.toURL());
View Full Code Here

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

        String responseFormat = "application/jp2";;
        int status = HttpServletResponse.SC_OK;
        byte[] b = null;
        try {
            ImageRecord r = ReferentManager.getImageRecord(contextObject.getReferent());
            if (r != null && r.getImageFile() != null) {
                b = IOUtils.getBytesFromFile(new File(r.getImageFile()));
            } else if (r != null && r.getObject() != null) {
                if (r.getObject() instanceof byte[]) {
                    b = (byte[]) r.getObject();
                } else if (r.getObject() instanceof InputStream) {
                    b = IOUtils.getByteArray((InputStream) r.getObject());
                }
            }
            if (b == null) {
                throw new Exception("Unable to resolve resource");
            }
View Full Code Here

Examples of net.sf.jpluck.plucker.ImageRecord

    }

    public ImageRecord createImageRecord(Bitmap bitmap, boolean alternate) {
        String a = (alternate ? ".alternate" : "");
        String s = (isRedirected() ? redirectionURI : uri) + a;
        ImageRecord imageRecord = new ImageRecord(s, bitmap);
        if (isRedirected()) {
            imageRecord.setAlternateURI(uri + a);
        }
        return imageRecord;
    }
View Full Code Here

Examples of net.sf.jpluck.plucker.ImageRecord

                } else {
                    embeddedImage = ImageConverter.rescale(image, embeddedSettings.getBitDepth(),
                                                           embeddedSettings.getMaxWidth(),
                                                           embeddedSettings.getMaxHeight());
                    Bitmap bitmap = ImageConverter.convert(embeddedImage, embeddedSettings.getBitDepth());
                    ImageRecord imageRecord = resource.createImageRecord(bitmap, false);
                    pluckerDocument.addRecord(imageRecord);
                }
                if (!embeddedSettings.isIncludeAlternate() ||
                        ((image.getWidth() <= embeddedImage.getWidth()) &&
                        (image.getHeight() <= embeddedImage.getHeight()))) {
                    return;
                }
            }

            if ((jxlDocument.isIncludeStandaloneImages())) {
                // TODO: Improve heuristic for determining whether to include an alternate image.
                ImageSettings standaloneSettings = jxlDocument.getStandaloneImageSettings();
                if (ClientConfiguration.getDefault().isUseMultiImage()) {
                    BufferedImage standaloneImage = ImageConverter.rescale(image, standaloneSettings.getMaxWidth(),
                                                                           standaloneSettings.getMaxHeight());
                    addCompositeImage(resource, standaloneImage, standaloneSettings, resource.isEmbedded());
                } else {
                    BufferedImage standaloneImage = ImageConverter.rescale(image, standaloneSettings.getMaxWidth(),
                                                                           standaloneSettings.getMaxHeight());
                    int width = standaloneImage.getWidth();
                    int height = standaloneImage.getHeight();

                    int targetBitDepth = standaloneSettings.getBitDepth();
                    int maxPossiblebitDepth = 0;
                    if ((maxPossiblebitDepth == 0) && (targetBitDepth >= 8)) {
                        if ((width * height) <= 60000) {
                            maxPossiblebitDepth = 8;
                        }
                    }
                    if ((maxPossiblebitDepth == 0) && (targetBitDepth >= 4)) {
                        if ((width * height) <= 120000) {
                            maxPossiblebitDepth = 4;
                        }
                    }
                    if ((maxPossiblebitDepth == 0) && (targetBitDepth >= 2)) {
                        if ((width * height) <= 240000) {
                            maxPossiblebitDepth = 2;
                        }
                    }
                    if ((maxPossiblebitDepth == 0) && (targetBitDepth >= 1)) {
                        if ((width * height) <= 480000) {
                            maxPossiblebitDepth = 1;
                        }
                    }
                    if (maxPossiblebitDepth > 0) {
                        Bitmap bitmap = ImageConverter.convert(standaloneImage, maxPossiblebitDepth);
                        ImageRecord imageRecord = resource.createImageRecord(bitmap, resource.isEmbedded());
                        pluckerDocument.addRecord(imageRecord);
                    }
                }
            }
        } catch (IOException e) {
View Full Code Here

Examples of net.sf.jpluck.plucker.ImageRecord

    private void addCompositeImage(Resource resource, BufferedImage image, ImageSettings imageSettings,
                                   boolean alternate) {
        CompositeBitmap compositeBitmap = CompositeBitmap.create(image, imageSettings.getBitDepth());
        if (compositeBitmap.getRows() == 1) {
            ImageRecord imageRecord = resource.createImageRecord(compositeBitmap.getBitmapAt(0, 0), alternate);
            pluckerDocument.addRecord(imageRecord);
        } else {
            String[] segmentURIs = new String[compositeBitmap.getRows()];
            String uri = (resource.isRedirected() ? resource.getRedirectionURI() : resource.getURI());
            if (alternate) {
                uri += ".alternate";
            }
            for (int i = 0, n = compositeBitmap.getRows(); i < n; i++) {
                segmentURIs[i] = uri + "-" + (i + 1);
                pluckerDocument.addRecord(new ImageRecord(segmentURIs[i], compositeBitmap.getBitmapAt(i, 0)));
            }

            CompositeImageRecord imageRecord = resource.createCompositeImageRecord(segmentURIs, 1, alternate);
            pluckerDocument.addRecord(imageRecord);
        }
View Full Code Here

Examples of net.sf.jpluck.plucker.ImageRecord

      BufferedImage image = ImageIO.read(new ByteArrayInputStream(data));
      CompositeBitmap compositeBitmap = CompositeBitmap.create(image, bpp);
      String[] uris = new String[compositeBitmap.getRows()];
      for (int j = 0, n = compositeBitmap.getRows(); j < n; j++) {
        uris[j] = "http://127.0.0.1/-" + j;
        document.addRecord(new ImageRecord(uris[j], compositeBitmap.getBitmapAt(j, 0)));
      }
      document.addRecord(new CompositeImageRecord("http://127.0.0.1/", uris, 1));
        }

        if (name.length() > 31) {
View Full Code Here

Examples of net.sf.jpluck.plucker.ImageRecord

      home.addParagraph(2).addText(i + " ").addLinkStart(uri).addText(file.getName()).addLinkEnd();
     
      String[] uris = new String[compositeBitmap.getRows()];
      for (int j = 0, n = compositeBitmap.getRows(); j < n; j++) {
        uris[j] = uri + "-" + j;
        document.addRecord(new ImageRecord(uris[j], compositeBitmap.getBitmapAt(j, 0)));
      }
      document.addRecord(new CompositeImageRecord(uri, uris, 1));
      if (!noBookmarks) {
        document.addBookmark(file.getName(), uri);
      }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.