使用Python + MagickWand创建方形缩略图

时间:2014-07-10 13:39:42

标签: python magickwand wand

如何使用Python和Wand创建方形缩略图?我试图从任何大小的源图像制作方形缩略图。非常重要的是缩略图与原始缩略图具有相同的宽高比,裁剪是可以的,它应该填充缩略图的sapce。

2 个答案:

答案 0 :(得分:2)

以下crop_center()函数使给定图像成为方形。

from __future__ import division

from wand.image import Image


def crop_center(image):
    dst_landscape = 1 > image.width / image.height
    wh = image.width if dst_landscape else image.height
    image.crop(
        left=int((image.width - wh) / 2),
        top=int((image.height - wh) / 2),
        width=int(wh),
        height=int(wh)
    )

首先,你需要使图像成方形,然后你可以resize()更小的方形。

答案 1 :(得分:0)

  • 没有裁剪。
  • 用颜色填充空白区域(在这种情况下:白色)。
  • 保持宽高比
from math import ceil
from wand.image import Color


def square_image(img):
    width = float(img.width)
    height = float(img.height)
    if width == height:
        return img
    border_height = 0
    border_width = 0
    if width > height:
        crop_size = int(width)
        border_height = int(ceil((width - height)/2))
    else:
        crop_size = int(height)
        border_width = int(ceil((height - width)/2))
    img.border(color=Color('white'), height=border_height, width=border_width)
    img.crop(top=0, left=0, width=crop_size, height=crop_size)
    return img