Python Imaging Library & create new image

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
drewsilson
User
Beiträge: 21
Registriert: Dienstag 9. Januar 2007, 12:13

Hi ich arbeite zur Zeit mit PIL.
Funktioniert auch alles wunderbar. Jedoch hab ich natuerlich ein kleines Problemchen:
Ich wuerde gerne ein eigenes Bild erzeugen indem ich eine Sequenz von RGB werten auslese und als JPG speichere.

Dazu kreiere ich eine zufaellig generierte liste mit 150 Eintraegen, die cih dann zu einem String konvertiere um sie dann mit Image.fromstring(...) als 10x15 Pixel Image auszulesen.

Hier mein sample code:

Code: Alles auswählen

# n=10 numbers in x direction
n = 10

# m=15 numbers in y direction
m = 15

# create randomly distributed sequence with numbers from 0-149
values = range(n*m)
random.shuffle(values)

# save image
im = Image.fromstring('RGB', (n,m), str(values))
im.save('image.jpg')
Ich habe anstatt von str(values) = '[value_0,...,value_n*n]' auch schon
str(tuple(values)) = '(value_0,...,value_n*n)' und
folgende Struktur probiert:
'(value0,value0,value0),...,(value_n*m,value_n*m,value_n*m)'

Ich speichere auch ein Image ab, jedoch haben die gespeicherten RGB Werte nichts mit den originalen zu tun.

Irgendwelche Ideen?? Bin dankbar fuer alles!!
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

Code: Alles auswählen

# numbers in x direction
X_DIM = 10
# numbers in y direction
Y_DIM = 15
MAX_VAL = 149
# create randomly distributed sequence with numbers from 0-149
# *3 for 'RGB'-mode, chose 'L' for gray-scale
img_string = "".join( chr(random.randint(0, MAX_VAL)) for _ in xrange(X_DIM * Y_DIM * 3) )
# save image
im = Image.fromstring('RGB', (X_DIM, Y_DIM), img_string)
im.save('image.jpg')
... so ungefähr jedenfalls(da ungetestet)
hth, Jörg
Edit: Jetzt bin ich am testen ...
Antworten