示例#1
0
 def render(self, context):
     """Called when the page is actually rendered."""
     obj = resolve_variable(self.obj, context)
     imageid = getattr(obj, 'name', obj)
     if not imageid:
         return ''
     if self.options.get('urlonly', False):
         return unicode(huimages.imageurl(imageid))
     else:
         if self.options.get('nolink', False):
             return huimages.scaled_tag(imageid, self.options.get('size', '1024x768'))
         else:
             return unicode('<a class="imagelink" href="%s">%s</a>' % (huimages.imageurl(imageid),
                 huimages.scaled_tag(imageid, self.options.get('size', '1024x768'))))
示例#2
0
    def __init__(self, field, obj):
        self.field = field
        self.parent_obj = obj
        self.original_image = getattr(self.parent_obj, self.field.attname)
        self.original_image_path = os.path.join(settings.MEDIA_ROOT, str(self.original_image))
        self.mangled_name = str(self.original_image) # md5.new('sehkr1tt-%s-%r-%r' % (str(self.original_image), time.time(), id(self))).hexdigest()
        self.scaled_image_base = os.path.join(settings.MEDIA_ROOT, ',', self.mangled_name)
        self.broken_image = None

        # imageid is used for webstorage
        self.imageid = None

        # if broken.gif exists we send that if there are any problems during scaling
        if not os.path.exists(self.original_image_path):
            # check if we are using web based storage
            imageid = str(self.original_image)
            if imageid in huimages._setup_couchdb():
                self.original_image_path = huimages.imageurl(imageid)
                self.imageid = imageid
            else:
                self.broken_image = os.path.join(settings.MEDIA_ROOT, 'broken.gif') 

        for size in _sizes:
            setattr(self, '%s_path' % (size), curry(self.scaled_filename, size))
            setattr(self, '%s' % (size), curry(self.scaled_url, size))
            setattr(self, '%s_dimensions' % (size), curry(self.scaled_dimensions, size))
            setattr(self, '%s_tag' % (size), curry(self.scaled_tag, size))
示例#3
0
    def scaled_url(self, size='thumb'):
        """Scales an image according to 'size' and returns the URL of the scaled image."""

        if self.imageid:
            return huimages.imageurl(self.imageid, size)

        if not self.original_image:
            return ''
        outpath = self.scaled_filename(size)
        url = outpath[len(settings.MEDIA_ROOT):]
        if url.startswith('/'):
            url = url[1:]
        return urlparse.urljoin(settings.MEDIA_URL, url).replace('\\', '/')
示例#4
0
 def url(self, name):
     """Return the URL where an Image can be accessed."""
     return huimages.imageurl(name)