Je cherchais un pure python module
qui a des fonctionnalités équivalentes à la bibliothèque PHP GD. J'ai besoin d'écrire du texte sur un fichier image. Je sais que la bibliothèque PHP GD peut le faire. Est-ce que quelqu'un sait à propos de ce module en python aussi.Alternative pour la bibliothèque PHP GD en python
3
A
Répondre
6
Oui: le Python Imaging Library ou PIL. Il est utilisé par la plupart des applications Python qui ont besoin de faire du traitement d'image.
1
Puisque vous êtes à la recherche de "modules Python purs", PIL n'est peut-être pas OK. Alternatives à PIL:
- mahotas. Ce n'est pas pur, mais cela dépend seulement de numpy, ce qui est plutôt standard.
- FreeImagePy, une enveloppe ctypes pour FreeImage
Vous pouvez également utiliser GD directement à partir de Python en utilisant ctypes:
Python 3/Python 2 (fonctionne également PyPy):
#!/bin/env python3
import ctypes
gd = ctypes.cdll.LoadLibrary('libgd.so.2')
libc = ctypes.cdll.LoadLibrary('libc.so.6')
## Setup required 'interface' to GD via ctypes
## Determine pointer size for 32/64 bit platforms :
pointerSize = ctypes.sizeof(ctypes.c_void_p())*8
if pointerSize == 64:
pointerType = ctypes.c_int64
else:
pointerType = ctypes.c_int32
## Structure for main image pointer
class gdImage(ctypes.Structure):
''' Incomplete definition, based on the start of : http://www.boutell.com/gd/manual2.0.33.html#gdImage '''
_fields_ = [
("pixels", pointerType, pointerSize),
("sx", ctypes.c_int, 32),
("sy", ctypes.c_int, 32),
("colorsTotal", ctypes.c_int, 32),
## ... more fields to be added here.
]
gdImagePtr = ctypes.POINTER(gdImage)
gd.gdImageCreateTrueColor.restype = gdImagePtr
def gdSave(img, filename):
''' Simple method to save a gd image, and destroy it. '''
fp = libc.fopen(ctypes.c_char_p(filename.encode("utf-8")), "w")
gd.gdImagePng(img, fp)
gd.gdImageDestroy(img)
libc.fclose(fp)
def test(size=256):
## Common test parameters :
outputSize = (size,size)
colour = (100,255,50)
colourI = (colour[0]<<16) + (colour[1]<<8) + colour[2] ## gd Raw
## Test using GD completely via ctypes :
img = gd.gdImageCreateTrueColor(outputSize[0], outputSize[1])
for x in range(outputSize[0]):
for y in range(outputSize[1]):
gd.gdImageSetPixel(img, x, y, colourI)
gdSave(img, 'test.gd.gdImageSetPixel.png')
if __name__ == "__main__":
test()
Source: http://www.langarson.com.au/code/testPixelOps/testPixelOps.py (Python 2)
Questions connexes
- 1. imagepng() et la transparence dans la bibliothèque GD avec PHP
- 2. texte dégradé avec la bibliothèque GD de PHP
- 3. Dois-je utiliser la bibliothèque GD en PHP pour dessiner des images CAPTCHA?
- 4. Convertir des fichiers bitmap en JPEG en utilisant la bibliothèque GD en PHP
- 5. Boîte de texte en php gd
- 6. Quelle est la meilleure bibliothèque alternative pour gettimeofday() en C++?
- 7. convertir image couleur en noir et blanc en utilisant la bibliothèque php gd
- 8. PHP GD bibliothèque perte de qualité. D'autres idées?
- 9. PHP Library similaire à GD
- 10. Bibliothèque comme fakeweb pour Python
- 11. Quelqu'un peut-il m'aider avec la bibliothèque GD dans Windows?
- 12. Python GeoModel alternative
- 13. Comment incliner une image avec la bibliothèque GD?
- 14. La bibliothèque GD utilise-t-elle beaucoup de mémoire?
- 15. Alternative pour la fonction PHP obsolète: eregi_replace
- 16. fractale PHP GD flocon
- 17. Bibliothèque LXML en PHP?
- 18. PHP GD: Flou pour l'image transparente
- 19. Réflexion d'image translucide en PHP GD
- 20. Php Gd rotate image
- 21. php et true type collection en gd
- 22. Composition PNG en utilisant GD et PHP
- 23. Php Javascript alternative pour jquery grid
- 24. php gd et texte
- 25. VB6: alternative à la bibliothèque d'objets HTML (pour l'analyse HTML)
- 26. fusion d'images en utilisant php dans GD
- 27. alternative de `die()` en php
- 28. PIL vs Python-GD pour recadrer et redimensionner
- 29. composer automatiquement son - php ou quelque chose comme ça - bibliothèque GD pour le son?
- 30. alignement PHP centre GD ttftext
J'ai utilisé PIL pour exactement ce que @Idlecool demande. – nmichaels
est-ce un pur module python .. je peux voir les fichiers c à l'intérieur .. –
Non - c'est un module C compilé. Cela signifie entre autres que cela ne marchera pas avec des choses comme Jython ou IronPython, mais c'est beaucoup plus rapide qu'une simple implémentation Python. –