多后端图像处理与指纹识别

Miniature的Python项目详细描述


微型化是两个工具合一:

  • 提供多个后端的简单图像处理帮助程序的库
  • 一个可选的django应用程序,可轻松管理缩略图

后端

迷你版有两个支持的后端:PillowWand

注意:尽管魔杖后端产品在某些方面非常强大,但它仍面临一些性能问题 问题和内存泄漏。

安装

如果您没有安装django,请安装带有枕头后端的微型机:

pip install "miniature[pillow,six]"

如果没有安装django,则使用wand backend:

pip install "miniature[wand,six]"

如果您计划在django中使用minimal,则可以省略“六”依赖项:

pip install "miniature[pillow]"

缩微提供了操作图像的常用功能。首先要做的是加载 处理类:

from miniature.processor import get_processor

Processor = get_processor('pillow')

get_processor将自动加载miniature.processor.pillow_processor并返回 它的Processor类。您可以将完整的python路径作为字符串传递以加载任何其他处理器。 当然,您也可以用传统方式加载自己的处理器类。

一旦有了处理器类,就可以处理图像:

with Processor('my-image.jpg') as p:
    p.thumbnail(200, 200).save('my-image-mini.jpg')

注意,所有映像操作都返回处理器实例,允许您在 一个又大又丑的单行线操作。

保存(文件,[格式],**选项)

将图像保存在file中。file可以是文件名或文件描述符。format应该是 可用的格式。如果没有提供,则使用文件名的扩展名(如果有)或原始文件名 图像的格式。其他参数传递给内部save方法。你可以通过 quality用于jpeg图像。

关闭()

关闭图像资源和关联的文件描述符。你不必调用这个方法 如果将处理器用作上下文管理器。

设置背景(颜色)

更改图像背景色:

p.set_background('#fff')

作物(*args)

使用可变规格裁剪图像。

用坐标裁剪:

p.crop(10, 20, 50, 70)

按比例和位置裁剪:

p.crop(1/2, 'center')

位置可以是:centertop lefttop rightbottom rightbottom left

按比例裁剪A位置偏移:

p.crop(1, '-50%', 20)

偏移是指从图像中心移动裁剪部分的尺寸。他们可能是 百分比或整数(像素)。

最后,为了让处理器决定将裁剪区域移动到何处,您可以让他保持聪明 (有时会失败,让我们面对现实):

p.crop(16/9, 'smart')

调整大小(宽度、高度)

好吧,我想这很明显。

缩略图(宽度、高度)

创建图像的缩略图,同时保持纵横比。您可以传递upscale选项 使用True值强制图像大小,即使它小于提供的维度 (默认值为False)。

旋转(角度)

按照提供的angle逆时针方向旋转图像。

添加边框(宽度、颜色)

在图像周围添加提供的widthcolor边框。

django应用程序

需要编码和记录。

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

推荐PyPI第三方库


热门话题
Google应用程序引擎FreeMarker模板java。安全AccessControlException   在Java中,空字符串(“”)如何存储在内存中?   java如何使用PUT进行创建   java无法构造com的实例。谷歌。云数据存储。钥匙   Java递归中的堆栈溢出错误   java通过结构化设计模式重构冗余代码   javascript使用Selenium IDE 2.9.1上传文件   JAVAutil。扫描仪在Java中将文本文件加载到对象中   这个JAVA程序的时间复杂度是多少   java Springboot+tomcat+ssh=连接链路故障   矢量Java不安全操作   用于Java不同生成代码的协议缓冲区gRPC protobuf生成器   java OSGi为什么我的包命名为“unknown0.0.0”和MANIFEST。MF文件被覆盖了吗?   java日期保持为空(Android)   使用stax解析器java解析xml   java有一种方法可以在运行时确定对象是否是使用Lambdaj创建的。关于()方法?