Example #1
0
def create_tables():
    from models import Image, Imageuri, ImageFragment, Metadata, Annotation
    Image.create_table()
    Imageuri.create_table()
    ImageFragment.create_table()
    Metadata.create_table()
    Annotation.create_table()
Example #2
0
 def add_imageuri(self, uri, image):
     
     """ 
         Adds an Imageuri object to a Image Object
     """ 
 
     global ns_ma
     try:
         imageuri = Imageuri.get(uri=uri)
         if imageuri.image == image:
             return False       
     except Imageuri.DoesNotExist:
         imageuri = Imageuri.create(
             image=image,
             uri=uri,
         )
         imageuri.save()
         try: 
             imagefrag = ImageFragment.get(x=0, y=0, image=image)
             urimeta = self.add_metadata(imagefrag, ns_ma)
             self.add_annotation(urimeta, "relation", uri)
             return True
         except ImageFragment.DoesNotExist:
             return False
         return True
Example #3
0
def addimage():

    """
        if HTTP verb is POST the system checks, if the URI is already in the system
        if YES, the user is being redirected to the image
        if NOT, the image size is checked (for development, image width has to be < 680px)
        if it is allowed, the image is being saved as object, metadata gets extracted
        and the user is being redirected to the image page
        
        ***TODO***
        - check if url is for an image!
        --> Bad Request if not
    """
    
    if request.method == 'POST' and request.form['imageuri']:
        try:
            imageuri = Imageuri.get(uri=request.form['imageuri'])
            imageob = imageuri.image
            flash('Dieses Bild ist bereits im System gespeichert. Bitte waehle eine andere URI.', 'error')
            return redirect(url_for('image_detail', imageid=imageob.id))
        except Imageuri.DoesNotExist:
            imgsize = imgc.get_image_size(request.form['imageuri'])
            imgc.check_image_size(imgsize)
            if imgc.check_image_size(imgsize):
                imageob = imgc.create_new_image(request.form['imageuri'], imgsize)                
                flash('Dein Bild wurde erfolgreich ans System uebertragen. Starte nun mit deinen Annotationen.')
                return redirect(url_for('image_detail', imageid=imageob.id))
            else:
                flash('Dieses Bild ist zu gross. Bitte waehle ein Bild, dass maximal 680px breit ist!', 'error')
                return redirect(url_for('addimage'))
    return render_template('addimage.html')
Example #4
0
 def create_new_image(self, imguri, imgsize):
     global gl_image
     
     """ Creates a new image instance and queries
         metadata thats already included in the file
         resulting in new fragments, metadata and annotations
     """ 
     
     imageob = Image.create(width=imgsize[0], height=imgsize[1],)
     imageob.save()
     imageuri = Imageuri.create(
         image=imageob,
         uri=imguri,
     )
     imageuri.save()
     
     gl_image = imageob
     self.extract_def_metadata(imguri)
     
     return imageob