python-Image-PIL auf Binär Hex
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import urllib.request
import io
import binascii
data = urllib.request.urlopen('http://pastebin.ca/raw/2311595').read()
r_data = binascii.unhexlify(data)
stream = io.BytesIO(r_data)
img = Image.open(stream)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf",14)
draw.text((0, 220),"This is a test11",(0,255,0),font=font)
draw = ImageDraw.Draw(img)
with open(img,'rb') as in_file: #error on here invalid file:
hex_data = in_file.read()
# Unhexlify the data.
bin_data = binascii.unhexlify(bytes(hex_data))
print(bin_data)
Frage
Umwandlung von hex in Bild und ziehen Sie ein text auf das Bild danach Bild konvertieren nach Binär-hex,aber mit dem problem hier with open(img,'rb') as in_file:
, wie konvertiert man img zu hex?
- Was PIL-Variante sind Sie mit auf Python 3? Kissen?
- ich m mit Aspell PIL python 3.3 lfd.uci.edu/~gohlke/pythonlibs/#pil
- Kann ich Ihnen empfehlen, wechseln Sie zu Kissen statt? Es wird aktiv gepflegt und funktioniert Super auf Python 3.3, und es hat wichtige fixes (wie der Umgang mit dem schreiben zu BytesIO).
- ich sehe keine Kissen Unterstützung für Python 3.3?pypi.python.org/pypi/Pillow/#downloads
- Sie können in der Regel von der Quelle erstellen (es unterstützt Python 3 nur in Ordnung), es sei denn, Sie sind auf Windows.
- test-server befinden sich auf Fenster -, real-server auf ubuntu,aber eine Möglichkeit, dass ich laufen kann die richtige mit Ihrem code, habe keine Fehler UnsupportedOperation
- Sicher!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
img
Objekt muss gespeichert werden, wieder; schreiben Sie es auf ein anderesBytesIO
Objekt:dann Holen Sie sich die geschriebenen Daten mit den
.getvalue()
Methode:Des PIL für python-3 Landschaft ist Recht verworren im moment. Die Kissen Gabel sieht, der beste zu sein, aufrechterhalten-version gibt es im moment. Es enthält Korrekturen zu machen, dass sparen zu einem
BytesIO
Objekt arbeiten. Wenn Sie inio.UnsupportedOperation: fileno
exception mit dem obigen code, haben Sie eine version, die war noch nicht festgelegt, in welchem Fall Sie müssen resort über eine temporäre Datei statt.PIL
version, wirftio.UnsupportedOperation: fileno
Ausnahme. Allerdings fand ich, dass die version vonPIL
gerne schreibenStringIO
Objekt, wie beschrieben, hier.io.UnsupportedOperation: fileno