def create_strip(self, resolution_ratio=None):
"""
Combines the images in taken_photos into one
:return: the combined image
"""
if not resolution_ratio:
resolution_ratio = self.strip_resolution_ratio
padding = 40
photo_width = int(self.photo_resolution[0] * resolution_ratio)
photo_height = int(self.photo_resolution[1] * resolution_ratio)
width = (photo_width * 2) + (padding * 4)
height = (photo_height * self.picture_count) + (padding * (self.picture_count + 1))
strip = Image.new('RGB', (width, height))
canvas = ImageDraw.Draw(strip)
canvas.rectangle((0, 0, width, height), fill=ImageColor.getcolor('#ffffff', 'RGB'))
for i in range(0, self.picture_count):
image = Image.open(self.pictures_taken[i])
image = image.convert(mode='RGB')
image = image.resize((photo_width, photo_height), resample=Image.LANCZOS)
strip.paste(image, box=(
padding,
padding + (padding * i) + (photo_height * i)
))
strip.paste(image, box=(
padding + photo_width + padding + padding,
padding + (padding * i) + (photo_height * i)
))
del image
strip = strip.transpose(Image.FLIP_LEFT_RIGHT)
strip = strip.filter(ImageFilter.DETAIL)
strip = strip.filter(ImageFilter.SHARPEN)
(handle, file_name) = mkstemp(suffix='.jpg', prefix='photoberry-strip')
os.close(handle)
handle = open(file_name, 'wb')
strip.save(handle, format='jpeg', quality=95, optimize=True)
handle.close()
handle.close()
del strip
return file_name
评论列表
文章目录