用于生成缩略图的模板标记,具有基于exif.orientation的自动旋转。除此之外。

Django-Photofile的Python项目详细描述


====
photofile
==


version:0.5.0
作者:thomas weholt<;thomas@weholt.org>;
许可证:修改的bsd
www:https://bitbucket.org/weholt/django photofile
状态:beta


about
----
*缩略图生成的模板标记支持基于exif.orientation的自动旋转。
*照片的抽象模型,处理exif元数据的提取。
*下一个计划的功能:标记-读取和写入标记到照片元数据(iptc/xmp)。

changelog
--
0.5.0-为即将进行的项目进行一些重构。
0.4.0-添加了用于查找屏幕分辨率的装饰器。例如,请参阅how部分。



--
<;img src={%generate_thumbnail imagefile 100x100 crop%}"/>;


名称或文件名。
photofile将按此顺序进行检查。

param 2:分辨率,指定为<;width>;x<;height>;,类似于320x280。


param 3:可选"裁剪"-将强制裁剪照片。

缩略图将写入静态文件目录或静态根目录中名为"thumbs"的目录中。如果不存在名为thumbs的目录,则将创建该目录。

生成的缩略图将命名为<;filename>;<;width>;x<;height>;<;extension>;。使用裁剪时,它将被命名为
<;filename>;lt;width>;x<;height>;Crop。<;extension>;。例如,分辨率为200x300的test.jpg的缩略图将命名为
test x300.jpg。


photofile将尝试使用缓存(如果启用),但它将url缓存到缩略图,而不是图像本身,因此它还不是非常有效的。

nb!强烈建议使用某种方法来确保给photofile的文件名是唯一的。这就是为什么它将首先查找名为unique_filename的属性。


若要使用抽象模型,请执行以下操作:


from django.db import model s
from photofile.models import photometadata

类照片(photometadata):
image=models.imagefield(upload_to=settings.static_data)
title=models.charfield(max_length=100)

def_uu unicode_uu(self):
如果self.width和self.height:
返回%s(%sx%s)%(self.title,self.width,self.height)
否则:
返回self.title

settings.py就像这样:


import tempfile
import os
static廑data=os.path.join(tempfile.gettempdir(),'staticdata')
如果不是os.path.exists(static廑data):
os.makedirs(static廑data)

media廑root=static廑data



staticfiles廑加载照片并首次保存它exif元数据将被提取并存储在数据库中。这些exif属性
目前可用,但经度、纬度和高度尚未实现:

*宽度
*高度
*经度
*纬度
*高度
*exif日期
*相机型号
*方位
*曝光时间
*曝光量
*曝光程序
*ISO速度
*测光模式
*光源。RCE
*使用的闪光灯
*焦距
*曝光模式
*白平衡
*焦距

源包含一个示例项目,其中详细说明了如何实现适当的管理py、一些模板等。

0.4.0中的新功能:

photofile可以使用装饰器检测屏幕分辨率,例如:

django.http import httpresponsereseredirect,httpresponse
来自photofile.decorators import提供屏幕信息

@provide屏幕信息o
def index(request):
返回httpresponse(%sx%s"%(request.session.get('screen_width'),request.session.get('screen_height'))


还需要添加photofile.url:

from django.conf.url.defaults import patterns,include,url
导入photofile
url patterns=patterns('',
url(r'^default.html$','testme.views.index'),

urlpatterns+=photofile.url.urlpatterns;



这也使得photofile可以根据屏幕分辨率自动生成最大化的缩略图:

<;img src={%generate_thumbnail imagefile max%}"/>;


---------------------------
我看过sorl缩略图和其他一些,最初我想使用现有的项目,但它们都不支持基于exif.orientation的自动旋转。

tofile.
*备选方案b)下载源代码,解包并安装python set up.py。
*备选方案c)hg克隆https://bitbucket.org/weholt/django-photofile并安装python setup.py。

如果需要,请单击。
*将目录添加到静态文件目录或设置静态根目录。



其中imagefile是一个对象,其属性/字段名为:
*unique_filename或
*complete_filename或
*filename

分辨率指定为<;width>;x<;height>;,例如640x480,如果要裁剪照片,请添加裁剪,如
示例o所示版本

要求
----
*django
*pil
*pyexiv2
*django taggit

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

推荐PyPI第三方库


热门话题
java如何使用Spring和JSF向客户端授予临时权限   java除了Array/ArrayList之外,还有其他保存矩阵元素的方法吗   java BeanValidation不适用于单选按钮   通过java程序连接到配置单元数据库时出错   java如何使用maven解决二级依赖关系   JfreeChart/Java中带有图例的数据表   合并数组时发生java运行时错误   安全性如何在JavaEE中保护WebSocket端点?   java有没有一种方法可以使用insert方法为树插入值   java编程“静态”的另一种方式:代码可以吗?   java阅读文本文件时如何跳过3行   %04X在C中的含义以及如何在java中编写   java我如何验证一个方法不是仅在一个测试范围内对模拟调用的?   java如何在mac中使用启动appium desktop 1.6.1。球棒   仅匹配最多10位小数的java正则表达式