Example #1
0
def build(*filter):
    makedirs("build/labels/embedded")
    makedirs("build/labels/practice")
    makedirs("build/labels/thumbnails")
    regions = get_regions()
    for label in labels():
        if filter and label.canonical not in filter:
            continue
        try:
            source = Image.open(label.source)
            region = regions[label.canonical]
            width, height = source.size

            # embedded images
            outer_size = outer_width, outer_height = [
                int(float(region.diagonal) * WIDTH),
                int(float(region.width) / region.diagonal * region.height * HEIGHT),
            ]
            if width > outer_width:
                inner_size = [
                    int(outer_width),
                    int(float(outer_width) * height / width),
                ]
                embedded = source.resize(inner_size, Image.ANTIALIAS)
            else:
                embedded = source
            embedded.save(label.embedded)

            practice = embedded.resize([dim / 2 for dim in embedded.size], Image.ANTIALIAS)
            practice.save(label.practice)

            # thumbnail
            thumb_size = [
                int(float(width) / height * 100),
                100,
            ]
            thumb = source.resize(thumb_size, Image.ANTIALIAS)
            thumb = darken(thumb, .5)
            thumb.save(label.thumbnail)

            print label.parts, outer_size, source.size, embedded.size, thumb_size, practice.size
        except Exception, reason:
            print>>sys.stderr, label.parts, reason