django – 带有简单缩略图的衬垫

django – 带有简单缩略图的衬垫,第1张

概述我正在使用简易缩略图为我的网站制作缩略图.我想从1500x1023px的图像创建缩略图.所需缩略图的大小为100x100px.我想要的是缩略图显示整个徽标而不是裁剪或拉伸.我已经看到这被称为衬垫合身 – 与作物相反.例如,对于此图像,我们在顶部添加236px的空白,在底部添加237px的空白,然后调整大小.有没有办法用简单的缩略图来做到这一点?如果没有,有关如何处理此问题的任何建议?谢谢! 感谢T 我正在使用简易缩略图为我的网站制作缩略图.我想从1500x1023px的图像创建缩略图.所需缩略图的大小为100x100px.我想要的是缩略图显示整个徽标而不是裁剪或拉伸.我已经看到这被称为衬垫合身 – 与作物相反.例如,对于此图像,我们在顶部添加236px的空白,在底部添加237px的空白,然后调整大小.有没有办法用简单的缩略图来做到这一点?如果没有,有关如何处理此问题的任何建议?谢谢!解决方法 感谢Timmy O’Mahony关于创建处理器以进行填充的建议.这是针对类似问题的那些代码.要使其工作,您需要在设置中使用以下内容:
thumbnail_PROCESSORS = (    'easy_thumbnails.processors.colorspace','common.thumbnail_processors.pad_image','easy_thumbnails.processors.autocrop','easy_thumbnails.processors.scale_and_crop','easy_thumbnails.processors.filters')

然后你可以将它添加到common / thumbnail_processors.py(或任何地方)

import Imagedef pad_image(image,**kwargs):    """ Pad an image to make it the same aspect ratio of the desired thumbnail.    """    img_size = image.size    des_size = kwargs['size']    fit = [float(img_size[i])/des_size[i] for i in range(0,2)]    if fit[0] > fit[1]:        new_image = image.resize((image.size[0],int(round(des_size[1]*fit[0]))))        top = int((new_image.size[1] - image.size[1])/2)        left = 0    elif fit[0] < fit[1]:        new_image = image.resize((int(round(des_size[0]*fit[1])),image.size[1]))        top = 0        left = int((new_image.size[0] - image.size[0])/2)    else:        return image    # For transparent    #mask=Image.new('L',new_image.size,color=0)    #new_image.putAlpha(mask)    # For white    new_image.paste((255,255,255))    new_image.paste(image,(left,top))    return new_image
总结

以上是内存溢出为你收集整理的django – 带有简单缩略图的衬垫全部内容,希望文章能够帮你解决django – 带有简单缩略图的衬垫所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206960.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存