以Python方式生成图片的转写

由Wagtail的{% image %}模板标签所生成的原始图片的渲染版本,被成为“转写(reditions)”,他们作为新的图片文件,在初次调用时,就存储在站点的[media]/images目录中了。

还可通过原生的get_rendition()方法,从Python动态地生成图片转写,比如:

  1. newimage = myimage.get_rendition('fill-300x150|jpegquality-60')

myimage的文件名为foo.jpg时,那么将生成一个名为foo.fill-300x150.jpegquality-60.jpg的该图片文件的新的转写,并保存到该站点的[media]/images目录。该方法的参数选项与模板标签{% image %}的过滤器规范一致,且应使用|进行分隔。

所生成的Rendition对象,将有着一些特定于该图片版本的属性,比如urlwidthheight等,因此类似于这些就可在某个API生成器中加以使用,比如:

  1. url = myimage.get_rendition('fill-300x150|jpegquality-60').url

属于所生成转写的原始图片的那些参数,比如title,可通过该转写的image属性而访问到:

  1. >>> newimage.image.title
  2. 'Blue Sky'
  3. >>> newimage.image.is_landscape()
  4. True

另请参阅:在模板中使用图片