Exemplo n.º 1
0
def make_manifest_json(image_pages, thumbnail_images, identifier, page=None):
    fac = ManifestFactory()
    fac.set_base_prezi_uri(get_manifest_url(''))
    fac.set_debug("error")
    if page is None:
        page = {
            "title": image_pages[0]['title'],
            "extract": "(single wikimedia image)"
        }
    manifest = fac.manifest(ident=identifier, label=page['title'])
    manifest.description = sanitise(page['extract'])
    sequence = manifest.sequence(ident="normal", label="default order")
    for image_page in image_pages:
        page_id = image_page.get('pageid', None)
        wiki_info = image_page.get('imageinfo', [None])[0]
        if wiki_info is not None and wiki_info['mime'] == "image/jpeg":
            canvas = sequence.canvas(ident='c%s' % page_id,
                                     label=image_page['title'])
            canvas.set_hw(wiki_info['thumbheight'], wiki_info['thumbwidth'])
            set_canvas_metadata(wiki_info, canvas)
            anno = canvas.annotation(ident='a%s' % page_id)
            img = anno.image(ident=wiki_info['thumburl'], iiif=False)
            img.set_hw(wiki_info['thumbheight'], wiki_info['thumbwidth'])
            thumb_page = thumbnail_images.get(str(page_id), None)
            if thumb_page is not None:
                thumb_info = thumb_page['imageinfo'][0]
                canvas.thumbnail = fac.image(ident=thumb_info['thumburl'])
                canvas.thumbnail.format = "image/jpeg"
                canvas.thumbnail.set_hw(thumb_info['thumbheight'],
                                        thumb_info['thumbwidth'])
    return manifest.toJSON(top=True)
Exemplo n.º 2
0
 def test10_set_hw_from_file_image_magick(self):
     mf = ManifestFactory()
     self.assertNotEqual( mf.whichid, '' ) #Expect to find ImageMagick
     self.assertRaises( ConfigurationError, mf.image, 'name' )
     mf.set_base_image_uri( 'testimages' )
     img = mf.image('an_image')
     self.assertEqual( img.set_hw_from_file('testimages/nci-vol-2303-72.jpg'), None )
     self.assertEqual( img.width, 648 )
     self.assertEqual( img.height, 432 )
Exemplo n.º 3
0
 def test09_set_hw_from_iiif(self):
     mf = ManifestFactory()
     mf.set_base_image_uri('file:tests/testdata')
     img = mf.image('image1', iiif=True)
     self.assertEqual(img.set_hw_from_iiif(), None)
     self.assertEqual(img.width, 3000)
     self.assertEqual(img.height, 4000)
     # Error cases
     img._identifier = ""
     self.assertRaises(ConfigurationError, img.set_hw_from_iiif)
     img._identifier = "image-does-not-exist"
     self.assertRaises(ConfigurationError, img.set_hw_from_iiif)
     img._identifier = "image2_bad"
     self.assertRaises(ConfigurationError, img.set_hw_from_iiif)
Exemplo n.º 4
0
def make_manifest_json(image_pages, thumbnail_images, identifier, page=None):
    """Generate the raw json for manifest."""
    fac = ManifestFactory()
    fac.set_base_prezi_uri(identifier)
    fac.set_debug('error')
    if page is None:
        page = {
            "title":
            "Media on Wikimedia Commons with the Category: {}".format(
                CATEGORY_STRING),
            "extract":
            "Generated by the ScienceStories.io API"
        }
    manifest = fac.manifest(ident=identifier, label=page['title'])
    manifest.description = sanitise(page['extract'])
    sequence = manifest.sequence(ident="normal", label="default order")
    for image_page in image_pages:
        page_id = image_page.get('pageid', None)
        wiki_info = image_page.get('imageinfo', [None])[0]
        # TODO: Extend support for more MIME Types
        # Currently universalviewer does not support: "image/tiff"
        verified_mimes = ["image/jpeg", "image/png"]
        if wiki_info is not None and wiki_info['mime'] in verified_mimes:
            canvas = sequence.canvas(ident='c%s' % page_id,
                                     label=image_page['title'])
            canvas.set_hw(wiki_info['thumbheight'], wiki_info['thumbwidth'])
            set_canvas_metadata(wiki_info, canvas)
            anno = canvas.annotation(ident='a%s' % page_id)
            img = anno.image(ident=wiki_info['thumburl'], iiif=False)
            img.set_hw(wiki_info['thumbheight'], wiki_info['thumbwidth'])
            thumb_page = thumbnail_images.get(str(page_id), None)
            if thumb_page is not None:
                thumb_info = thumb_page['imageinfo'][0]
                canvas.thumbnail = fac.image(ident=thumb_info['thumburl'])
                canvas.thumbnail.format = "image/jpeg"
                canvas.thumbnail.set_hw(thumb_info['thumbheight'],
                                        thumb_info['thumbwidth'])
    manifest_serialized = manifest.toJSON(top=True)
    return manifest_serialized
Exemplo n.º 5
0
"""Simple example for iiif_prezi.factory.ManifestFactory()."""

from iiif_prezi.factory import ManifestFactory

factory = ManifestFactory()
factory.set_base_prezi_uri("http://example.org/iiif/prezi/")
factory.set_base_image_uri("http://example.org/iiif/image/")
factory.set_iiif_image_info(version="2.0", lvl="2")

mf = factory.manifest(label="Manifest")
mf.viewingHint = "paged"

seq = mf.sequence()
for x in range(1):
    cvs = seq.canvas(ident="c%s" % x, label="Canvas %s" % x)
    cvs.set_hw(1000, 1000)
    anno = cvs.annotation()
    img = factory.image("f1r.c", iiif=True)
    img2 = factory.image("f1r", iiif=True)
    chc = anno.choice(img, [img2])

# print(mf.toString(compact=False))