一种基于应用程序用户创建的对象生成精灵的方法。

django-dynamic-sprites的Python项目详细描述


为python和django创建sprites dynamicly。

0.1.3版

安装

通过pip

安装包
pip install django-dynamic-sprites

为文件夹中的图像生成精灵

一种生成精灵的方法是从文件夹中的所有图片生成精灵。为此,请键入以下命令:

generate_sprites.py path/to/folder path/to/output

需要注意的一点是,您没有传递输出扩展名。脚本已经用.png生成图像,用.css生成css。

从python代码生成sprite

在python代码中,可以为给定的图像集生成精灵。您只需提供图像路径,每个图像的名称,生成精灵并保存它:

from dynamic_sprites.sprite import Sprite

images = (
    ('brazil', '/path/to/brazil/image.png'),
    ('usa', '/path/to/usa/image.png'),
)

sprite = Sprite('sprite_name', images)

output_image = sprite.generate()
output_image.save('/path/to/output/image.png')

output_css = sprite.generate_css('http://images.com/output/image.png')
output_css.save('/path/to/output/style.css')

这是从python代码生成sprite的基础。但也有一些抽象概念将其与django集成在一起。即使项目名上有django,也可以不使用django生成sprite。

为django queryset对象生成精灵

假设你有这样一个django模型:

from django.db import models

class Country(models.Model):
    name = models.CharField(max_length=255)
    slug = models.SlugField()
    flag = models.ImageField(upload_to='countries')

你想要一个插满国旗的雪碧。您可以使用Sprite专门化生成它:

from dynamic_sprites.model_sprite import ModelSprite

sprite = ModelSprite('country-flags', queryset=Country.objects.all(), image_field='flag', slug_field='slug')

output_image = sprite.generate()
output_image.save('/path/to/output/image.png')

output_css = sprite.generate_css('http://images.com/output/image.png')
output_css.save('/path/to/output/style.css')

您还可以将精灵生成连接到保存后侦听器,并在每次保存QuerySet中的对象时重新生成精灵:

from django.db.models.signals import post_save
from dynamic_sprites.listeners import ModelSpriteListener

listener = ModelSpriteListener('country-flags', image_field='flag', slug_field='slug', queryset=Country.objects.all())

post_save.connect(listener, sender=Country)

为项目做出贡献

这个项目是开源的,欢迎大家的贡献。

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

推荐PyPI第三方库


热门话题
javajexcel包装文本问题   EclipseJavaEnum缩进超过左括号。如何让它看起来更正常?   java有办法包含Tomcat 6 catalina。out和localhost。在网络应用的日志文件中记录内容?   java如何永久性地阻止JavaFX代码在eclipse中被突出显示为错误?   如何在java中优化两个for循环(for循环中的for循环)   java如何在我的windows机器上从jar文件创建mac osx的可执行文件   使用记忆化/动态规划的Java组合学   Java中的游荡对象垃圾收集   java为什么我在JSP和JDBC和MySQL中遇到连接失败错误   java轮询Pod的就绪状态   如何创建电子邮件并将其发送到Java中的特定地址?   java如何修复Dagger 2错误“。。。无法提供[…]”?   java Android单选按钮看起来太轻   Android Studio:开发在应用程序之间共享的通用java库