用于生成缩略图的模板标记,具有基于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正在运行。jar heapdump错误   java如何在安卓画布中弯曲文本区域?   java如何在Gdx 安卓游戏编程中获得矩形的真实触碰位置?   找不到java Spring MVC控制器   在Java中使用双重检查锁定单例扩展类   java在高效的时间和内存中动态执行insert(索引、数据)、delete(索引)、getAt(索引)操作。   java 安卓 Toast和视图帮助   java协议缓冲区:从文件中读取所有序列化消息   java如何在Jackson中为参数化接口类型执行通用自定义反序列化程序   与简单的空检查相比,使用(平面)映射的java优势是什么?   异步方法seam中的java Get contextparam   jar使用相同的java运行时运行另一个java程序   java访问Spring批处理中的作业参数   java给定字符串为空或null   在h2数据库1.4中找不到java类“org.h2.fulltext.FullTextLucene”。*不适用于Lucene Core 4*   java Spring Boot在使用@enableSync时不响应任何请求   java错误:在bash上找不到或加载主类pj2   “返回对象”和“返回(对象)”之间的Java差异   java Android开发:如何使用onKeyUp?