Snažil som sa previesť celočíselné pole hodnôt RGB na obrázok PNG. Ako môžem vygenerovať nasledujúci obrázok z nasledujúceho celočíselného poľa?
"""This is a 3D integer array. Each 1D array inside this array is an RGBA value"""
"""Now how can I convert this RGB array to the PNG image shown above?"""
rgbArray = [
[[255,0,0], [255, 0, 0], [255, 0, 0], [255, 0, 0], [0,0,255], [0,0,255], [0,0,255], [0,0,255]],
[[255,0,0], [255, 0, 0], [255, 0, 0], [255, 0, 0], [0,0,255], [0,0,255], [0,0,255], [0,0,255]],
[[255,0,0], [255, 0, 0], [255, 0, 0], [255, 0, 0], [0,0,255], [0,0,255], [0,0,255], [0,0,255]],
[[255,0,0], [255, 0, 0], [255, 0, 0], [255, 0, 0], [0,0,255], [0,0,255], [0,0,255], [0,0,255]],
[[0,0,255], [0,0,255], [0,0,255], [0,0,255], [255, 0, 0], [255, 0, 0], [255, 0, 0], [255, 0, 0]],
[[0,0,255], [0,0,255], [0,0,255], [0,0,255], [255, 0, 0], [255, 0, 0], [255, 0, 0], [255, 0, 0]],
[[0,0,255], [0,0,255], [0,0,255], [0,0,255], [255, 0, 0], [255, 0, 0], [255, 0, 0], [255, 0, 0]],
[[0,0,255], [0,0,255], [0,0,255], [0,0,255], [255, 0, 0], [255, 0, 0], [255, 0, 0], [255, 0, 0]],
]
odpovede:
5 pre odpoveď č. 1Môžete použiť Python Imaging Library previesť RGB dátové body na väčšinu štandardných formátov.
from PIL import Image
newimage = Image.new("RGB", (len(rgbArray[0]), len(rgbArray))) # type, size
newimage.putdata([tuple(p) for row in rgbArray for p in row])
newimage.save("filename.png") # takes type from filename extension
ktorá vyrába:
Na .save()
metóda môže tiež použiť argument formátu, PNG
by tento výstup nastavil na PNG.
(Odporúčame nainštalovať Vankúš vidlice ako je viac aktívne udržiavané a pridáva správne balenie a podporu Python 3).
1 pre odpoveď č. 2
Na Python Imaging Library (PIL) je vhodný pre väčšinu zobrazovacích potrieb v Pythone. Obrazový modul obsahuje a fromstring
funkcie a save
funkcia, ktorá by mala presne robi \ t