How can I create square thumbnails with Python and Wand? I'm trying to make square thumbnails from source images of any size. It's important that the thumbnail have the same aspect ratio as the original, cropping is ok, and it should fill the sapce of the thumbnail.
问问题
709 次
2 回答
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()
把正方形变小。
于 2014-07-11T05:27:30.823 回答
1
- 没有种植。
- 用颜色填充空白区域(在本例中:白色)。
- 保持纵横比
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
于 2017-03-30T20:22:01.903 回答