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.
Im Handbuch steht:
MatrixQ[expr] gives True only if expr is a list, and each of its elements is
a list of the same length, containing no elements that are themselves lists.
fuer {r,g,b} pixel bedeutet das das die einzelnen pixelzeilen als matrix der
dimension spaltenanzahl X 3
herausgepickt werden (das wollten wir doch gar nicht oder ?). Dies geschieht
aber fuer alle zeilen so das man dann gluecklicherweise (wie durch zauber)
doch noch die gewuenschte matrix erhaelt.
fuer grayscale pixel geschieht ganz was anderes hier wird tatsaechlich die
matrix der pixel in einem rutsch geliefert allerdings durch die levelspec
Infinity erhaelt man {pixelmatrix} also die ganzen pixeldaten durch ein
zusaetzliches klammernpaar eingeschlossen (zusaetzliche
klammnernschachtelungen wuerde man wohl bekommen wenn sich die pixel noch
tiefer in der struktur verstecken wuerden).
man benoetigt also im grayscale fall:
First@Cases[gr, _?MatrixQ, Infinity]
Eventuell koennte ein modifiziertes MatrixQ helfen um alle faelle gleich zu
behandeln.
Resume man kommt nicht drum rum die struktur von Graphics, Raster, ... etc
genau zu kennen.
Leider ist die struktur von Raster nur beispielhaft und unvollstaendig fuer
verschiedene typen dokumentiert, es gibt keine formale definition von Raster
fuer 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.
mit funktionalen gruessen
Robert
---
Robert Nowak (robert.nowak@XXXXXXX.at)
Ionen Mikrofabrikations Systeme GmbH
A-1020 Wien, Schreygasse 3, Austria
Phone: (+43 1)2144894-32, Fax: (+43 1)2144894-99
----- Original Message -----
From: Jens-Peer Kuska <kuska@XXXXXXX.de>
To: Robert Nowak <robert.nowak@XXXXXXX.at>
Cc: Deutsche Mathematica News Group <dmug@XXXXXXX.ch>
Sent: Tuesday, February 08, 2000 2:56 PM
Subject: Re: Objekte und Zugriffs-Funktionen