又一个用于graphicsmagick的python包装器

pgmagick的Python项目详细描述


关于

Build status

pgmagick是另一个基于boost.python的graphicsmagick包装器。

安装

安装到:

$ pip install pgmagick

要求

python2.5++,graphicsmagick和boost.python。

在ubuntu上安装软件包(在ubuntu10.04+上测试):

### Ubuntu11.10+ ###
$ apt-get install python-pgmagick

### Ubuntu10.04+ ###
$ apt-get install libgraphicsmagick++1-dev
$ apt-get install libboost-python1.40-dev

在Fedora上安装软件包:

$ yum install GraphicsMagick-c++-devel
$ yum install boost-devel

来自源包的GraphicsMagick:

$ ./configure --enable-shared=yes
$ make && make install

macosx

通过自制桶(自制pgmagick)和python2

使用homebrew-pgmagick

$ brew tap hhatto/pgmagick
$ brew install pgmagick

通过自制桶(自制pgmagick)和Python3

with–with-python3选项:

$ brew install pgmagick --with-python3

用python3自制和pip

在MacOSX 10.11.6上:

$ brew install graphicsmagick
$ brew install boost-python --with-python3
$ pip install pgmagick

用python2自制和pip

更新2017.05.17 在MacOSX 10.11.6上:

$ brew install graphicsmagick
$ brew install boost-python
$ pip install pgmagick

更新2014.05.12 在MacOSX 10.9.2上(添加archflags):

$ brew install graphicsmagick
$ brew install boost --with-python
$ ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install pgmagick

窗口

现在,不是官方支持。 但是,^ {EM1}$$非官方的EEM>二进制包存在。

imagemagick支持

ImageMagick库支持PGMagick。(版本:0.4+

在ubuntu上安装软件包(在ubuntu10.04+上测试):

$ apt-get install libmagick++-dev

显示库名称和版本:

>>> from pgmagick import gminfo
>>> gminfo.library
'GraphicsMagick'    # or 'ImageMagick'
>>> gminfo.version
'1.3.x'
>>>

用法

比例示例:

>>> from pgmagick import Image
>>> im = Image('input.jpg')
>>> im.quality(100)
>>> im.scale('100x100')
>>> im.sharpen(1.0)
>>> im.write('output.jpg')

调整大小示例:

>>> from pgmagick import Image
>>> im = Image('input.jpg')
>>> im.filterType(FilterTypes.SincFilter)
>>> im.resize('100x100')
>>> im.write('output.jpg')

合成示例:

>>> from pgmagick import Image, CompositeOperator as co
>>> base = Image('base.png')
>>> layer = Image('layer_one.png')
>>> base.composite(layer, 100, 100, co.OverCompositeOp)
>>> im.write('output.png')

绘制示例:

>>> from pgmagick import Image, DrawableCircle, DrawableText, Geometry, Color
>>> im = Image(Geometry(300, 300), Color("yellow"))
>>> circle = DrawableCircle(100, 100, 20, 20)
>>> im.draw(circle)
>>> im.fontPointsize(65)
>>> text = DrawableText(30, 250, "Hello pgmagick")
>>> im.draw(text)
>>> im.write('hoge.png')

blob访问:

>>> from pgmagick import Image, Blob, Geometry
>>> blob = Blob(open('filename.jpg').read())
>>> blob.update(open('filename2.jpg').read())
>>> img = Image(blob, Geometry(600, 480))
>>> img.scale('300x200')
>>> img.write('out.jpg')

创建动画gif:

from pgmagick import Image, ImageList, Geometry, Color

imgs = ImageList()
for color in ('red', 'blue', 'green', 'black', 'yellow'):
    imgs.append(Image(Geometry(200, 200), Color(color)))
imgs.animationDelayImages(100)
imgs.scaleImages(Geometry(100, 100))
imgs.writeImages('output.gif')

更多API细节…请阅读Magick++ API for GraphicsMagick文档。

python api(注意!!此API是Alpha版本!!):

>>> from pgmagick.api import Image
>>> img = Image((300, 300), "gradient:#ffffff-#000000")
>>> img.scale(0.8)
>>> img.write('out.png')

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

推荐PyPI第三方库


热门话题
java JNLP无法在浏览器中正确启动(与dtjava.js一起部署)   在执行下一个方法之前,java将等待线程执行结束   java如何将另一个LayoutManager应用于JComboBox?(多栏JComboBox尝试)   使用jPBC在java中实现双线性配对   java在使用@RequestMapping注释时获取请求的值(URL)   java如何控制流量   java如何获取IFC对象的绝对坐标?   java目标服务器无法使用htmlunit和tor响应异常   java需要帮助创建一个循环结构来运行我的程序   java有可能拥有一个Android APK并在应用程序中更改构建变体吗?   在Sphinx4中运行Ant的java   Java:从ArrayList获取子列表的有效方法   java如何使在循环内部创建的数组在循环外部工作?   apache poi通过java中的XSSF表从单元格读取日期值   安卓 java自己的SeqLock实现,避免spinlock会更好吗?   java的并发底层方法。util。同时发生的预定未来   java比较方法违反了它的一般约定,如何使它具有可传递性?   使用JAVA定向指定类的DB导出子类   一个方法中的java更改特定imageView