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)
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 )
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)
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
"""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))