def create_manifest(self, imgfiles): """create manifest""" # to be set in sysargs or via imagemagick imageWidth = int(self.width) imageHeight = int(self.height) identifier = "test file import" # setup factory factory = ManifestFactory() factory.set_base_metadata_uri("http://www.example.org/metadata/") factory.set_base_image_uri("http://www.example.org/iiif/") factory.set_iiif_image_info(version="2.0", lvl="2") # setup manifest mf = factory.manifest(label="Manifest") mf.viewingHint = "paged" mf.set_metadata({ "test label": "test value", "next label": "next value" }) mf.attribution = "Provided by Bodleian Library, Oxford, using ManifestFactory code from the Houghton Library, Harvard University" mf.viewingHint = "paged" mf.description = "Description of Manuscript Goes Here" seq = mf.sequence() # loop through images in path for img in imgfiles: # get path, full image name and extension imgPath, imgFullName = os.path.split(img) imgName, imgExt = os.path.splitext(imgFullName) # Mostly identity will come from incrementing number (f1r, f1v,...) # or the image's identity cvs = seq.canvas(ident="c%s" % imgName, label="Canvas %s" % imgName) cvs.set_hw(imageWidth, imageHeight) anno = cvs.annotation() al = cvs.annotationList("foo") # for demo purposes adds choices img = factory.image(imgFullName, iiif=True) img2 = factory.image(imgName + 'b' + imgExt, iiif=True) chc = anno.choice(img, [img2]) json = mf.toString(compact=False) # write to text file text_file = open(identifier.replace(" ", "") + ".json", "w") text_file.write(json) text_file.close() return json
cvs.width = img.width if folio == 'f16r': # Add Detail Image ifn = "f16r.d" anno2 = cvs.annotation(label="Detail Image") img = anno2.image(ifn, iiif=True) img.set_hw_from_file(imageDirectory + ifn + ".jpg") frag = '#xywh=640,780,590,410' anno2.on += frag if folio in ['f1r', 'f25r', 'f44v', 'f117r', 'f128r', 'f176v', 'f182r']: # Add Image Choice img1 = fac.image(ident="%s.c" % folio, label="Color", iiif=True) img1.set_hw_from_file(imageDirectory + ("%s.c.jpg" % folio)) img2 = anno.resource img2.set_label("Black and White") anno.choice(img1, [img2]) # Add Text Annotation List annol = cvs.annotationList("text-%s" % folio) # Text Annotations per Line (cola, colb, areas, texts) = parse_js_file(f,rv) lineids = texts.keys() lineids.sort() for lid in lineids:
if folio == 'f16r': # Add Detail Image ifn = "f16r.d" anno2 = cvs.annotation(label="Detail Image") img = anno2.image(ifn, iiif=True) img.set_hw_from_file(imageDirectory + ifn + ".jpg") frag = '#xywh=640,780,590,410' anno2.on += frag if folio in [ 'f1r', 'f25r', 'f44v', 'f117r', 'f128r', 'f176v', 'f182r' ]: # Add Image Choice img1 = fac.image(ident="%s.c" % folio, label="Color", iiif=True) img1.set_hw_from_file(imageDirectory + ("%s.c.jpg" % folio)) img2 = anno.resource img2.set_label("Black and White") anno.choice(img1, [img2]) # Add Text Annotation List annol = cvs.annotationList("text-%s" % folio) # Text Annotations per Line (cola, colb, areas, texts) = parse_js_file(f, rv) lineids = texts.keys() lineids.sort() for lid in lineids: try:
except: manifest = fac.manifest(bkid, label=linfo['title']) manifest.set_metadata({'Author': linfo['first_author'], 'Place of Publication': linfo['pubplace'], 'Publisher': linfo['publisher'], "Date": linfo['date'], "Shelfmarks" : bookinfo['shelfmarks'], 'Issuance': bookinfo['issuance']}) manifest.attribution = "British Library" manifest.seeAlso = bookinfo['flickr_url_to_book_images'] seq = manifest.sequence("s1", label="Regular Order") manifests[bkid] = manifest cvs = seq.canvas(linfo['flickr_id'], label="p. %03d (detail)" % int(linfo['page'])) anno = cvs.annotation("%s-image" % linfo['flickr_id']) imgs = [] if linfo['flickr_original_source']: orig = fac.image(linfo['flickr_original_source']) orig.set_hw(int(linfo['flickr_original_height']), int(linfo['flickr_original_width'])) imgs.append(orig) if linfo['flickr_large_source']: large = fac.image(linfo['flickr_large_source']) large.set_hw(int(linfo['flickr_large_height']), int(linfo['flickr_large_width'])) imgs.append(large) if linfo['flickr_medium_source']: medium = fac.image(linfo['flickr_medium_source']) medium.set_hw(int(linfo['flickr_medium_height']), int(linfo['flickr_medium_width'])) imgs.append(medium) if linfo['flickr_small_source']: small = fac.image(linfo['flickr_small_source'])