Skip to main content

Yet Another Python wrapper for GraphicsMagick

Project description

About

PyPI Version Build status

pgmagick is a yet another boost.python based wrapper for GraphicsMagick.

Installation

install to:

$ pip install pgmagick

Requirements

Python3.5++ (or Python2.7), GraphicsMagick and Boost.Python.

package install on Ubuntu(test on Ubuntu10.04+):

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

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

package install on Fedora:

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

GraphicsMagick from source package:

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

MacOSX

via homebrew-cask(homebrew-pgmagick) with Python3

use homebrew-pgmagick

$ brew tap hhatto/pgmagick
$ brew install pgmagick

via homebrew-cask(homebrew-pgmagick) with Python3

via homebrew and pip with Python3

on MacOSX (10.13.5~10.15.x):

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

Windows

Now, not official support. However, unofficial binary packages exists.

ImageMagick support

pgmagick is supported to ImageMagick library. (version:0.4+)

package install on Ubuntu(test on Ubuntu10.04+):

$ apt-get install libmagick++-dev

show library name and version:

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

Usage

scale example:

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

resize example:

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

composite example:

>>> 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')

draw example:

>>> 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 access:

>>> 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')

create animated-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')

more API detail… read to Magick++ API for GraphicsMagick document.

Python APIs(NOTICE!! this api is alpha version!!):

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pgmagick-0.7.5.tar.gz (363.5 kB view details)

Uploaded Source

File details

Details for the file pgmagick-0.7.5.tar.gz.

File metadata

  • Download URL: pgmagick-0.7.5.tar.gz
  • Upload date:
  • Size: 363.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/2.7

File hashes

Hashes for pgmagick-0.7.5.tar.gz
Algorithm Hash digest
SHA256 f676e2e4abd5d27cfb3bf1e7a1d8df147683f4a753333470aa771137ce05c347
MD5 6e0d5bd7816640867f7a038538af1fff
BLAKE2b-256 e4297fb208efd5e2e7b107c68dca0a0781a669372a6518c7687cd6fc5f8540b5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page