Probleme mit .asRGB Funktion (Python png-Modul)
-
- User
- Beiträge: 29
- Registriert: Mittwoch 9. November 2016, 13:52
Hm vielleicht liegt es ja daran. Denn ich habe mir pypng aus pip installiert
-
- User
- Beiträge: 29
- Registriert: Mittwoch 9. November 2016, 13:52
Ach jetzt habe ich den Fehler selbst gefunden, denn vor der .asRGB()-Funktion habe ich die Chunk-Funktion verwendet. Nun habe ich sie entfernt und es funktioniert.
Danke an ALLE, die mir hierbei unterstützt haben.
Jedoch habe ich gemerkt, dass ich mit dem eigentlichen Sinn und Zweck nicht weiterkomme.
Weil ich dachte, dass die asRGB-Funktion mir die Pixel in RGB-Code umsetzt.
Also zum Beispiel ganz rotes Pixel als 255, 0, 0 ausgibt.
Weiß jemand von euch welche Funktion ich dafür verwenden kann
Danke an ALLE, die mir hierbei unterstützt haben.
Jedoch habe ich gemerkt, dass ich mit dem eigentlichen Sinn und Zweck nicht weiterkomme.
Weil ich dachte, dass die asRGB-Funktion mir die Pixel in RGB-Code umsetzt.
Also zum Beispiel ganz rotes Pixel als 255, 0, 0 ausgibt.
Weiß jemand von euch welche Funktion ich dafür verwenden kann
@Python1906: Das tut sie doch auch. Du bekommst einen Iterator über `bytearray`-Objekte für jede Zeile wo die Bytewerte für die Pixel drin sind.
-
- User
- Beiträge: 29
- Registriert: Mittwoch 9. November 2016, 13:52
Hm, jedoch bekomme ich dann folgendes:
[codebox=pycon file=Unbenannt.txt]
Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "copyright", "credits" or "license()" for more information.
>>>
RESTART: /home/julien/Schreibtisch/Programmieren/Python/Bilder/Colorchanger/changer.py
(225, 225, <itertools.imap object at 0x7f588b51c990>, {'bitdepth': 8, 'text': {}, 'last_mod_time': (2017, 5, 25, 18, 28, 33), 'interlace': 0, 'planes': 3, 'greyscale': False, 'alpha': False, 'resolution': ((2835, 2835), 1), 'size': (225, 225)})
>>>
[/code]
Muss ich einen bestimmten weiteren Befehl anwenden?
[codebox=pycon file=Unbenannt.txt]
Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "copyright", "credits" or "license()" for more information.
>>>
RESTART: /home/julien/Schreibtisch/Programmieren/Python/Bilder/Colorchanger/changer.py
(225, 225, <itertools.imap object at 0x7f588b51c990>, {'bitdepth': 8, 'text': {}, 'last_mod_time': (2017, 5, 25, 18, 28, 33), 'interlace': 0, 'planes': 3, 'greyscale': False, 'alpha': False, 'resolution': ((2835, 2835), 1), 'size': (225, 225)})
>>>
[/code]
Muss ich einen bestimmten weiteren Befehl anwenden?
@Python1906: Du bekommst ein Tupel mit Breite, Höhe, einem Iterator über die Zeilen und einem Wörterbuch mit Metainformationen. Über den Iterator musst Du iterieren um an die Pixel zu kommen. Pro Pixelzeile im Bild liefert der ein `bytearray`-Objekt mit drei Bytes pro Pixel.
Was willst Du mit den Daten eigentlich machen und was ist der Grund für pypng im Gegensatz zu beispielseise der Python Imaging Library (PIL) oder Pillow und Numpy?
Code: Alles auswählen
In [8]: reader = png.Reader('png.png')
In [9]: width, height, rows, info = reader.asRGB()
In [10]: rows
Out[10]: <itertools.imap at 0xa7216ac>
In [11]: row = next(rows)
In [12]: len(row)
Out[12]: 675
In [13]: width
Out[13]: 225
In [14]: len(row) / 3
Out[14]: 225
In [15]: row[:12]
Out[15]: bytearray(b'\xfe\xfb\xfb\xfe\xfb\xfb\xfe\xfb\xfb\xfe\xfb\xfb')
In [16]: row[0], row[1], row[2]
Out[16]: (254, 251, 251)
-
- User
- Beiträge: 29
- Registriert: Mittwoch 9. November 2016, 13:52
Ich möchte ein sogenannten einstieg darin versuchen. Bei den anderen Libraries, wie PIL, habe ich noch nichts von gehört, weswegen ich mit Pypng starten wollte.
Danke nochmal für den Beispielcode
Danke nochmal für den Beispielcode
-
- User
- Beiträge: 29
- Registriert: Mittwoch 9. November 2016, 13:52
Somit wollte ich anfangen ein Bild zu lesen und die Farben zu verändern