用“python-mosaic图像”从图像创建马赛克``

osaic的Python项目详细描述


osaic是一个简单的python模块,它允许您从 通过发出简单的python -mosaic foo.jpg命令生成图像。

基本思想是将一组图像作为输入:第一组图像用作 最后拼图的背景;其他的按平均值索引 最后的马赛克上的颜色和花边,如瓷砖。

此外,用户还可以指定马赛克的最终尺寸 (相对于初始目标图像的大小)和 每边使用的瓷砖。

依赖关系

模块依赖于pythonPIL库(由 安装脚本),用于与image有关的所有操作 正在处理。另外,添加对jpegs和pngs的支持 图像,并使模块能够在屏幕上显示马赛克,请 安装libjpeglibpnglibtk

安装

要安装osaic,可以从mercurial和 存储库和来自python包索引(pypi)。前者是 更适合bleeding edge用户,即使是强悍的后者也不是 保证very稳定。

来源:

cd /wherever/you/want
hg clone https://bitbucket.org/iamFIREcracker/osaic
python setup.py install

Pypi

来源:

cd /path/to/workspace
wget http://pypi.python.org/packages/source/o/osaic/osaic-2.0.0.tar.gz
tar zxvf osaic-2.0.0.tar.gz
cd osaic-2.0.0
python setup.py install

来自pypi:

pip install osaic

用法

osaic是一个既可以用作独立应用程序的模块 作为一个标准的python模块。

独立应用程序

该应用程序的一个典型用法是显示马赛克构图 从源图像创建:

python -mosaic image.jpg

如果要将输出保存到文件而不是显示它:

python -mosaic image.jpg -o mosaic-image.jpg

最后,如果你想创建一个比 原始图像,每面100块,只需发布:

python -mosaic -z4 -t100 image.jpg

对于其他一切,请使用帮助消息:

python -mosaic -h

模块是对象和函数的集合,它们具有不同的 功能:矢量函数,颜色转换,image 对象、图像索引和过程包装器。

对于向量运算,该模块实现了一些基本的 函数不包含在标准python中,但在使用时很有用 颜色:

>>> dotproduct([1, 2, 3], [4, 5, 6])
70
>>> difference([1, 2, 3], [1, 2, 3])
[0, 0, 0]
>>> squaredistance([1, 2, 3], [0, 0, 0])
30

也可以找到两个函数 颜色操作,如计算图像的平均颜色和 颜色量化。后者在尝试 将CPU工作负载保持在低水平:

>>> average_color('almost-red.png')
(240, 10, 20)
>>> quantize_color((240, 10, 20), levels=2)
(192, 64, 64)

如前所述,模块构建在python^{tt2}之上$ 图书馆。但是,我们选择不导出这样的external对象,而是 而是向用户展示一些包装器,即ImageWrapper

>>> img = Image.open('foo.png')
>>> img.size
(640, 480)
>>> img.reratio(5 / 1)
>>> img.crop((0, 0, 10, 10))
>>> img.size
(10, 10)
>>> img.show()

在制作马赛克的时候,有可能 为一组图像编制索引并使其能够搜索 就average color而言,与另一种颜色最相似。这个 ImageListobject随模块一起提供,原因如下:

>>> img_list = ImageList(['1.png', '2.png', '3.png'])
>>> img_list.search((255, 0, 0))
ImageTuple(filename='1.png', color=(255, 0, 0), image=None)

最后,模块附带了一个mosaicify函数,该函数包装 创建马赛克所需的所有操作,包括源图像 根据平均值对相邻图像进行索引和搜索 颜色:

>>> import osaic
>>> osaic.mosaificy(
...     target='foo.png',
...     sources=['bar.png', 'asd.png', 'bazinga.png'],
...     tiles=128,
...     zoom=4,
...     output='mosaic.png',
... )

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

推荐PyPI第三方库


热门话题
java我能在这个程序中更好地使用内存吗?   为什么我的Java while循环迭代了一半   java IntelliJ IDEA不在构建时复制资源   socket仅在Java TCP服务器输出上检查客户端断开连接   java游戏物理摩擦   java片段onClick调用方法   symja数学分析器中无法识别java Abs[x]   java在使用泛型时创建二进制搜索树类的实例?   java在外键约束表上的添加和删除   语法java表达式的含义,如果有条件   java创建内联对象并作为参数传递   是否有相当于Redis排序集(zset)的Java数据结构   java找不到适合的方法(无参数)   音频文件操作给定字节帧的音量Java   Eclipse4不以JavaWebStart启动   java如何使用org在JSON对象中获取嵌套的键元素。json?   java与Jackson的反序列化:“org.codehaus.Jackson.map.JsonMappingException:无法反序列化[projectname]的实例。”   字符串的Java正则表达式   spring集成上的java检测缺火指令