对django wagtail图像使用简单的缩略图

wagtail-easy-thumbnails的Python项目详细描述


一个简单的django应用程序,允许您对来自Wagtail的图像使用easy_thumbnails, 包括焦点,你可以在图片上定义摇尾。

这将允许您使用在wagtail中的缩略图 不提供,例如每个图像的JPEG质量控制,强制图像为JPEG和 定制处理器强大的扩展机制。

这不是wagtail图像标签的替换品。相反,你需要使用 普通的easy_缩略图标签与过滤器和处理器相结合,可以很好地工作 用摇摆的图像。

快速启动

  1. 从pypi安装wagtail_easy_thumbnails

    pip install wagtail_easy_thumbnails
    
  2. wagtail_easy_thumbnails添加到INSTALLED_APPS设置中,如下所示:

    INSTALLED_APPS = (
        ...
        'wagtail_easy_thumbnails',
    )
    
  3. 将以下筛选器添加到您的EASYTHUMBNAIL_PROCESSORS设置中,如下所示:

    THUMBNAIL_PROCESSORS = (
        # use this one instead of normal scale_and_crop
        'wagtail_easy_thumbnails.processors.wagtail_scale_and_crop_with_focal_area',
        # 'easy_thumbnails.processors.scale_and_crop',
        ... other processors
    )
    
  4. 在模板中使用,如下所示:

    {% load thumbnail wagtail_thumbnail %}
    <img src="{% thumbnail page.visual|wagtail_thumbnailer 300x100 crop zoom=100 %}" alt=""/>
    
    <!--or-->
    
    {% thumbnail page.visual|wagtail_thumbnailer 300x100 crop zoom=100 as cropped_image %}
    <img src="{{ cropped_image.url }}"
         width="{{ cropped_image.width }}"
         height="{{ cropped_image.height }}"
         alt=""/>
    
  5. 在代码中使用如下:

    from easy_thumbnails.files import get_thumbnailer
    
    ...
    
    properties = {
        'size': ...,
        'crop': True,
        'zoom': 100,
    }
    # image is the wagtail image (or subclass) instance
    wrapped_image = WagtailThumbnailerImageFieldFile(wagtail_image=image)
    
    # thumbnailer has the same properties as the template tag result, so .url, .width, etc.
    thumnailer = get_thumbnailer(wrapped_image).get_thumbnail(properties)
    

缩略图选项

以下选项可用于创建缩略图。有关所有缩略图选项,请参见Easy Thumbnails documentation

size是必需的选项,它定义生成的图像 必须放在里面。如果宽度或高度之一为0,则原始 图像分别用于确定生成的宽度或高度。

仅当需要给定的功能时,才提供其他选项:

  • crop需要使处理器执行任何操作。如果没有给定,则使用普通的scale_and_crop处理器。此处理器不支持裁剪选项。
  • zoom=<N>,其中n是一个介于0和100之间的整数,用于指定图像离被裁剪的焦点区域的距离。默认值为0,表示尽可能接近外部图像边界,100表示尽可能接近焦距区域。
  • upscale如果给定结果图像小于请求的大小,则图像将被放大。

如果wagtail图像没有定义焦点区域,则正常的scale_and_crop处理器 用于生成缩略图。

设置

可以设置以下设置以覆盖默认值。另请参见Easy Thumbnails documentation 所有缩略图设置。

  • WAGTAIL_FOCAL_AREA_IMAGE_DEBUG:默认为False。如果设置为True,焦点区域将绘制在生成的图像上(对调试有用)。
  • WAGTAIL_THUMBNAIL_ALWAYS_RECREATE默认为False。如果设置为True,则无论缓存的版本如何(对调试有用),都会重新生成缩略图。

更改

0.3(2017-11-27)

  • 修正了异常情况下的零误差除法(感谢lucasmoeskops)

0.2(2017-03-15)

  • StupU.Py中固定的GITHUB链接(感谢ReDuxoistor)
  • 修正了当焦距小于目标大小时应用过多缩放的错误
  • 一些代码清理

许可证

此软件是在麻省理工学院的许可下发布的,请参阅许可证。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用jaxrpc的Java eclipse WebService客户端   java编程方式在对象上写入名称   java Spring批处理:重试后跳过   java Android错误:错误:任务执行失败:应用程序:transformClassesWithDexForDebug'   带有清单文件nullPointerException的java Android元数据   spring Java Quartz调度作业停止运行   JavaMockito:如何在不调用实际方法的情况下,模拟带有参数和无效返回类型的静态方法?   java Tomcat连接池问题无法在关闭的连接上调用方法   java如何交换列表中的项目?   java如何停止线程并通过Toast在线程中正确显示文本?   java为什么连续写入OutputStream时偏移量0不会导致重复字节?   java我无法生成头文件   不兼容的返回类型错误java   修改值后键值对的java Jolt转换规范   java有自动更新Javadoc的工具吗?   java线程如何在ints自身实例类中共享变量   java继承一个非gwt模块   java Hibernate xml配置   使用netty4异步调用的java链接HTTP请求响应