Python (Imaging library): Resampling-Zeichenkette als argument
Python-Anfänger-Frage. Der Code unten sollte erklären, mein problem:
import Image
resolution = (200,500)
scaler = "Image.ANTIALIAS"
im = Image.open("/home/user/Photos/DSC00320.JPG")
im.resize(resolution , scaler)
ERGEBNIS:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1255, in resize
raise ValueError("unknown resampling filter")
ValueError: unknown resampling filter
Funktioniert:
im.resize(resolution , Image.ANTIALIAS)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, dann Bild.ANTIALIASING ist kein string, also nicht behandeln es als eine:
Als @ThibThib Sprach mit "Bild.ANTIALIASING" ist nicht das gleiche wie Bild.ANTIALIASING.
Aber wenn man immer erwarten, um die Resampling-Wert als string, können Sie das folgende tun:
im.resize(resolution, getattr(Image, scaler))
Als Sie sagte:
im.resize(resolution , Image.ANTIALIAS)
ist die LösungMuss man aufpassen, als diese anders als
im.resize(resolution , "Image.ANTIALIAS")
.In deinem Beispiel die variable
scaler
den string"Image.ANTIALIAS"
als ein Wert, der anders ist als der WertImage.ANTIALIAS
.Einen string, der xxxx ist anders als der Wert xxxx, genau wie der string
"12"
völlig anders ist als die integer -12
.