pythonmagick convert python imagemagick

python - convert - imagemagick linux



Documentos y ejemplos de PythonMagick. (5)

Es un enlace a la API de MagickWand : http://www.assembla.com/wiki/show/pythonmagickwand

Así que puedes usar todas las funciones de la API de MagickWand.

#!/usr/bin/python import Magick # Use the Python Imaging Library to create a Tk display dpy = Magick.TkDisplay(startmain=0) # Read the image img = Magick.read(''test.gif'') # Display the image dpy(img) dpy(img.Swirl(90)) dpy.startmain=1 dpy.show()

¿Dónde puedo encontrar el documento y ejemplos de PythonMagick ?

Hice una búsqueda en Google pero no se encontró mucha información.


Para averiguar el tipo de métodos en Python:

import PythonMagick dir(PythonMagick.Image())

Entonces obtienes una salida como esta:

[''__class__'', ''__delattr__'', ''__dict__'', ''__doc__'', ''__eq__'', ''__format__'', ''__ge__'', ''__getattribute__'', ''__gt__'', ''__hash__'', ''__init__'', ''__instance_size__'', ''__le__'', ''__lt__'', ''__module__'', ''__ne__'', ''__new__'', ''__reduce__'', ''__reduce_ex__'', ''__repr__'', ''__setattr__'', ''__sizeof__'', ''__str__'', ''__subclasshook__'', ''__weakref__'', ''adaptiveThreshold'', ''addNoise'', ''adjoin'', ''affineTransform'', ''animationDelay'', ''animationIterations'', ''annotate'', ''antiAlias'', ''attribute'', ''backgroundColor'', ''backgroundTexture'', ''baseColumns'', ''baseFilename'', ''baseRows'', ''blur'', ''border'', ''borderColor'', ''boundingBox'', ''boxColor'', ''cacheThreshold'', ''channel'', ''channelDepth'', ''charcoal'', ''chop'', ''chromaBluePrimary'', ''chromaGreenPrimary'', ''chromaRedPrimary'', ''chromaWhitePoint'', ''classType'', ''clipMask'', ''colorFuzz'', ''colorMap'', ''colorMapSize'', ''colorSpace'', ''colorize'', ''columns'', ''comment'', ''compare'', ''compose'', ''composite'', ''compressType'', ''contrast'', ''convolve'', ''crop'', ''cycleColormap'', ''debug'', ''defineSet'', ''defineValue'', ''density'', ''depth'', ''despeckle'', ''directory'', ''display'', ''draw'', ''edge'', ''emboss'', ''endian'', ''enhance'', ''equalize'', ''erase'', ''fileName'', ''fileSize'', ''fillColor'', ''fillPattern'', ''fillRule'', ''filterType'', ''flip'', ''floodFillColor'', ''floodFillOpacity'', ''floodFillTexture'', ''flop'', ''font'', ''fontPointsize'', ''fontTypeMetrics'', ''format'', ''frame'', ''gamma'', ''gaussianBlur'', ''geometry'', ''gifDisposeMethod'', ''iccColorProfile'', ''implode'', ''interlaceType'', ''iptcProfile'', ''isValid'', ''label'', ''lineWidth'', ''magick'', ''magnify'', ''map'', ''matte'', ''matteColor'', ''matteFloodfill'', ''meanErrorPerPixel'', ''medianFilter'', ''minify'', ''modifyImage'', ''modulate'', ''modulusDepth'', ''monochrome'', ''montageGeometry'', ''negate'', ''normalize'', ''normalizedMaxError'', ''normalizedMeanError'', ''oilPaint'', ''opacity'', ''opaque'', ''page'', ''penColor'', ''penTexture'', ''ping'', ''pixelColor'', ''process'', ''profile'', ''quality'', ''quantize'', ''quantizeColorSpace'', ''quantizeColors'', ''quantizeDither'', ''quantizeTreeDepth'', ''raise'', ''read'', ''readPixels'', ''reduceNoise'', ''registerId'', ''renderingIntent'', ''resolutionUnits'', ''roll'', ''rotate'', ''rows'', ''sample'', ''scale'', ''scene'', ''segment'', ''shade'', ''sharpen'', ''shave'', ''shear'', ''signature'', ''size'', ''solarize'', ''spread'', ''statistics'', ''stegano'', ''stereo'', ''strokeAntiAlias'', ''strokeColor'', ''strokeDashOffset'', ''strokeLineCap'', ''strokeLineJoin'', ''strokeMiterLimit'', ''strokePattern'', ''strokeWidth'', ''subImage'', ''subRange'', ''swirl'', ''syncPixels'', ''textEncoding'', ''texture'', ''threshold'', ''throwImageException'', ''tileName'', ''totalColors'', ''transform'', ''transformOrigin'', ''transformReset'', ''transformRotation'', ''transformScale'', ''transformSkewX'', ''transformSkewY'', ''transparent'', ''trim'', ''type'', ''unregisterId'', ''unsharpmask'', ''verbose'', ''view'', ''wave'', ''write'', ''writePixels'', ''x11Display'', ''xResolution'', ''yResolution'', ''zoom'']


Para cualquier persona que todavía esté tratando de encontrar la documentación de PythonMagick, PythonMagick es exactamente igual que Magick ++ (API para C ++). here está la documentación de Magick ++. Para algún parámetro específico, deberá encontrar el tipo y luego la enumeración (p. Ej., Gravity-> PythonMagick.GravityType.thegravityyouwant)


Por lo que puedo decir, PythonMagick envuelve la biblioteca Magick ++ . He podido copiar y pegar el código C ++ usando esta biblioteca en python y funciona como se esperaba. Además, los nombres de las clases y las funciones de los miembros coinciden (donde MagickWand parece ser totalmente diferente).

import PythonMagick as Magick img = Magick.Image("testIn.jpg") img.quality(100) #full compression img.magick(''PNG'') img.write("testOut.png")


Tampoco pude encontrarlos en ninguna parte, pero así es como lo uso de todos modos.

Ejemplo

import PythonMagick image = PythonMagick.Image("sample_image.jpg") print image.fileName() print image.magick() print image.size().width() print image.size().height()

Con salida como esta

sample_image.jpg JPEG 345 229

Para averiguar qué métodos de imagen están disponibles, por ejemplo, busqué en la fuente de cpp. Encuadernación del objeto Image : Image implementado en _Image.cpp O mejor aún, consulte la sugerencia para obtener los métodos contenidos en otra respuesta de Klaus en esta página.

En este archivo verás líneas como esta.

.def("contrast", &Magick::Image::contrast) .def("convolve", &Magick::Image::convolve) .def("crop", &Magick::Image::crop) .def("cycleColormap", &Magick::Image::cycleColormap) .def("despeckle", &Magick::Image::despeckle)

El bit entre comillas se asigna al nombre de la función del objeto Image. Siguiendo este enfoque, puedes descubrir lo suficiente como para ser útil. Por ejemplo, los métodos específicos de geometría están en _Geometry.cpp e incluyen a los sospechosos habituales como

.def("width", (size_t (Magick::Geometry::*)() const)&Magick::Geometry::width) .def("height", (void (Magick::Geometry::*)(size_t) )&Magick::Geometry::height) .def("height", (size_t (Magick::Geometry::*)() const)&Magick::Geometry::height) .def("xOff", (void (Magick::Geometry::*)(ssize_t) )&Magick::Geometry::xOff) .def("xOff", (ssize_t (Magick::Geometry::*)() const)&Magick::Geometry::xOff)