Hallo,
also die PixelMatrix steht i_m_m_e_r als erstes im Raster[].
Robert Nowak wrote:
>
> hallo jens,
>
> > Cases[gr, _?MatrixQ, Infinity]
>
> ja das klingt ganz gut scheint ja zu versprechen die pixeldaten
> "rauszuholen" voraussetzung ist das die pixel daten innerhalb von gr als
> matrix irgendwo enthalten sind. sollten irgend welche anderen daten dort
> ebenfalls als matrix drinnen stecken wuerde man die leider auch mitgeliefert
> bekommen.
Schlimmer als alles andere ist aber dass immer die Bitmap-Dimension mit
dabei ist
die als {{0,0},{w,h}} auch eine Matrix ist und als letztes drinsteht.
Korrekt w"are also
mat = Drop[Cases[gr, _?MatrixQ, Infinity], -1] /. {m_?MatrixQ } :> m
'schuldigung
Aber im Falle einer Palette ist das sowieso Unsinn weil ein z. B. ein
Filter mit Intensit"aten arbeitet und nicht mit Indexverweisen auf eine
Palette.
> Resume man kommt nicht drum rum die struktur von Graphics, Raster, ... etc
> genau zu kennen.
Na das ist ja wohl das mindeste. Man kann ausserdem einfach eine
Funktion
schreiben die jede Bitmap in RGB convertiert, zwar in den Speicher geht
aber
wohl das Sinnvollste ist, schliesslich macht jede Bildbearbeitung das
genauso.
> Leider ist die struktur von Raster nur beispielhaft und unvollstaendig fuer
> verschiedene typen dokumentiert, es gibt keine formale definition von Raster
> fuer allgemeine graphiktypen.
Was ist denn eine Definition von Raster[] f"ur allgemeine Graphiktypen ?
> Will man einen allgemeinen zugriff auf allgemeine Raster muss man wohl oder
> uebel annahmen ueber deren struktur machen welche nicht dokumentiert sind
> und daher falsch sein koennen. Eine solche annahme kann z.B. sein: "die
> pixelmatrix steht immer als erstes element in Raster welches widerum als
> erstes element in Graphics steht". dann kitzelt man die pixel eben mit First
> @First@gr gleichbedeutend mit First[First[gr]] oder wegen
> First[expr] is equivalent to expr[[1]]
> eben mittels gr[[1,1]] heraus punkt aus ende.
Kleiner Scherz am Rande, hat schon mal jemand die Essenz
dieser n"utzlichen Erl"auterungen
bei einem animierten GIF Bild angewandt ? Da gibts n"amlich eine Liste
mit
gr:{Graphics[Raster[__],___]..}
und die Raster steht *nicht* bei gr[[1,1]]. Wenn man aber einfach eine
Funktion macht
die das Attribut Listable hat, kann man die weiter verwenden :-)
Eben Funktional-Logisch.
Gruss
Jens