从原点重写的django水印

django-watermark-remastered的Python项目详细描述


django水印

此项目提供了一种简单的方法来应用自定义水印。 到您的Django动力网站上的图片。

作者:josh vanderlinden 贡献者

https://img.shields.io/pypi/v/django-watermark.svghttps://img.shields.io/pypi/dm/django-watermark.svghttps://img.shields.io/github/license/bashu/django-watermark.svghttps://landscape.io/github/bashu/django-watermark/develop/landscape.svg?style=flat

功能

  • 不透明度:过滤器允许您指定 水印图像
  • 水印定位:有几个选项可用于在 您的图像
    • 绝对:您可以为水印指定精确的像素位置
    • 相对:可以使用百分比放置水印
    • 角点:您可以将水印放置在图像的角点中
    • 随机:你可以告诉过滤器为你的 水印
    • 中心:可以在目标图像的中心放置水印
  • 缩放:可以缩放水印以覆盖图像或指定 要使用的比例因子
  • 平铺:水印可以平铺在图像上
  • 灰度:你可以在有水印之前把它转换成灰度。 应用于目标图像。
  • 旋转:您可以将水印旋转一定的度数或 旋转是随机的。

要求

django水印依赖于python图像库。 它是用最新的枕头测试的,支持但不推荐使用pil 1.1.7。

安装

将此存储库克隆到您的项目中,或使用 pip install django watermark安装

首先,您必须将此项目添加到 设置.py

INSTALLED_APPS=(...'watermarker',)

运行 /manage.py syncdb 。这将在数据库中创建表 操作所必需的。

请参见 示例 应用程序。此应用程序用于手动 测试此软件包的功能。这也是一个好的 例子:

你需要django 1.4或更高版本来运行它。可能会用老的 但未经测试的版本。

从0.1.6升级

从0.1.6升级可能会在尝试应用 表已存在时的迁移。在这种情况下,一个假迁移 需要应用:

./manage.py migrate watermarker 0001 --fake

配置(可选)

在这一节中,我不妨提到一个设置 可覆盖的变量: 水印质量 。这应该 是介于0和100之间的整数。默认值为85。

默认情况下,django水印会模糊原始图像的文件 名字,因为最初的要求是不可能 下载无水印图像。从0.1.6版开始,您可以设置 水印在您的 设置中是模糊的 错误的 。py 到 使用户可以访问原始图像文件名。

django水印也允许您配置随机水印的方式 定位应该有效。默认情况下,水印的时间 随机定位,只生成一个带水印的图像。如果 您希望在上生成图像水印的随机位置 每次请求,将水印随机位置设置一次 您的 设置.py

用法

如上所述,使用django水印时有几个选项。 首先要做的是加载模板的筛选器 希望对图像应用水印。

{%loadwatermark%}

从django管理员那里,继续用一些水印填充数据库 你想应用到你的常规图像。只需为 水印并上传水印图像本身。 可能不太好 建议在水印名称中使用逗号。 水印应该是透明的 PNG文件以获得最佳结果。我不能保证其他格式 会很好地工作。

水印过滤器的第一个参数必须是 为django管理中的水印指定。然后您可以从 很少有其他参数可以自定义水印的应用。这里他们 是:

  • 位置 -这一个是非常可定制的。首先,你可以 使用 br bl 中的一个将水印嵌入图像的一角, tr tl 。它们代表"右下"、"左下", "右上角"和"左上角"。

    或者,可以使用相对或绝对定位 水印。相对定位使用百分比;绝对定位使用 精确像素。您可以混合和匹配这两种定位模式,但是 无法将相对/绝对与角点定位混合和匹配。什么时候? 使用相对/绝对定位, 位置 参数的值 是 x x y ,其中 x 是左边的值, y 是上面的值。这个 左值和顶值必须用小写字母分隔 x

    如果你想让你的水印图像出现在任何图像的中心 要水印,可以使用位置参数,如 位置=50%x50% 甚至 位置=C 。如果你想让水印 在图像的左右边缘和100像素之间显示一半 从顶部开始,您将使用一个position参数,如 位置=50%x100

    最后,你可以告诉过滤器为你的水印生成一个位置 动态的。为此,请使用 位置=r

  • 不透明度 -此参数允许您指定 已应用水印。值必须是介于0和100之间的整数,其中0 是完全透明的,100是完全不透明的。默认情况下,不透明度设置为 在50%。

  • 平铺 -如果希望水印平铺到整个图像上,则 只需指定一个参数,如 tile=1

  • 缩放 -如果您希望在 目标图像和完全可见,您可能需要使用 scale=f 。当你 要使水印大小与源图像的百分比相对应,请使用 scale=r 并在设置中定义 水印百分比=40 。默认百分比值为30。如果你 要指定特定的比例因子,只需使用 比例=1.43

  • 灰度 -如果希望水印为灰度,可以指定 参数 灰度=1 和所有颜色饱和度将消失。

  • 旋转 -将此参数设置为0到359之间的任意整数(真的 任何整数都可以,但是为了你自己的理智,我建议保持 值介于0和359之间)。如果希望旋转是随机的,请使用 旋转=r 而不是整数。

  • 晦涩 -将此参数设置为0以使原始图像的文件名 对用户可见。默认值为1(或true)以隐藏原始值 文件名。

  • 质量 -将其设置为0到100之间的整数以指定质量 结果图像的。默认值为85。

  • random_position_once -将其设置为0或1以指定random 图像水印的定位行为。当设置为0时,水印 将在每个请求中随机放置。当设置为1时,水印将 在第一个请求上随机定位,随后的请求将使用 产生的图像。默认值为 (随机定位仅在 第一个请求)。

示例

  • { 图像url水印:"我的 水印,位置=br,不透明度=35"}

    查找名为"我的水印"的水印,将其放在右下角 目标图像的一角,使用35%的透明度级别。

  • { 图像url水印:"您的 水印,位置=tl,不透明度=75"}

    查找名为"您的水印"的水印,将其放置在左上角 使用75%的透明度级别。

  • { 图像URL水印:"水印,位置=43%x80%,不透明度=40" }

    查找名为"水印"的水印,将其放在X轴上的43% 以及目标图像y轴的80%,透明度为40%。

  • { 图像url水印:"水印,位置=R,不透明度=10,旋转=45"}

    寻找一个名为"水印"的水印,随机生成一个位置 对于它,在10%的透明度级别下,旋转45度。

  • { 图像url水印:"w00t,不透明度=40,平铺=1" }

    寻找一个名为"w00t"的水印,将其平铺到整个目标图像上, 透明度为40%。

许可证

django水印是根据BSD许可证发布的。

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

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像