binär vs. text
Hi Nils,
Zwar weiss ich, wie z.B. eine Bitmap Datei aufgebaut ist
aber ich weiss dennoch nicht, wie ich an diese Daten
„herankomme“.
dein problem ist der unterschied zwischen einer binärdatei (bmp) und einer textdatei (csv). Der befehl, die datei zu öffnen, hat da in pascal vielleicht andere parameter, siehe die hilfe.
binär heisst, jedes byte ist eine zahl zwischen 0 und 255. in pascal heisst der datentyp unsigned byte, schau dazu auch in die hilfe zu den datentypen.
diese holst du einzeln aus deiner bmp-datei raus. hier wäre das in einer doppelten for-schleife für die x- und y- abmessungen. natürlich nachdem der header weg ist.
die 3 farbbytes rechnest du in YUV um und behältst den helligkeitswert Y.
Dabei sind dann ja im im ASCII-Format
die Zahlen Ziffernweise abgespeichert
ein solches byte ist in einer ascii-datei (die du schreiben willst) kein byte mehr, sndern eine ausgeschriebene zahl mit 1 bis 3 stellen, einem komma und einem leerzeichen. also gleich bis zu 5 zeichen, die dann auch 5 bytes brauchen. das ascii-format ist da weniger dicht gepackt.
in pascal heisst der befehl zum umwandeln a:=itos(b), itos heisst int to string, wobei b ein unsigned byte und a ein string ist. probier das mal mit b=10 aus, da müsste der string ‚10‘ rauskommen.
da packst du ein komma und das leerzeichen dazu und schreibst das in die ausgabedatei, und die kriegt dann excel. vergiss nicht den zeilenwechsel nach einer neuen bildzeile.
ich hoffe, das hilft dir weiter.
–matze
Das ist aber ja wohl bei Bitmap und/oder JPEG Dateien ganz anders.
jpeg dateien sind komprimiert, das ist etwas komplizierter. bleib am besten beim 24 bit bmp-format. JPG und andere dateitypen kannst du mit jedem üblichen zeichenprogramm nach bmp konvertieren.