![]() |
Kurz: ja, ich speichere meine JPG files oft mit JPEG
:cat: |
Wie unterscheide ich die denn jetzt voneinander?
Am Anfang steht bei beiden FF D8. Am 21. Byte habe ich beim jpg nen DB und beim jpeg nen EC nach dem FF. Kann ich danach gehen? Oder soll ich doch am Besten nach dem C0 und wenn dies nicht vorhanden ist, nach C2 suchen? Nur hierbei wäre der zeitl. Suchaufwand wohl größer, wobei das bei den Dateigrößen wohl eh keiner merkt. Was meint ihr? |
Du solltest suchen. Dadurch dass nach dem Marker immer die Größe des Blockes kommt, kannst Du ja extrem shnell suchen. Sollte nicht auffallen. Wahrscheinlich kannst Du so danach suchen welcher zuerst kommt. Aber hier gibt es keine Garantien. :)
:cat: |
Hi Leute,
ich hab mich auch ein bisschen damit gespielt und irgendwie ist es bei mir so, dass (wenn es ein $FFC0 gibt), ich immer in den entsprechenden Bytes 160x120 als Größe habe, erst beim zweiten $FFC0 kommt die richtige Größe. Seltsame Sache, habt ihr auch so etwas ähnliches? MfG, d3g |
@ d3g: Nö, dass habe ich beim jpg nicht, wäre doch auch seltsam.
@ sakura: Wie würdest du danach suchen? Byteweise mit Read in ner Schleife auslesen? Gruß |
Was haltet ihr von folgendem Code zum Suchen?
Code:
Es fehlt natürlich noch die Abfrage, ob die Extension .jpeg oder .jpg ( mit ExtractFileExt und AnsiLowerCase) ist.
[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]var[/b] bild: integer; dmy: [b]array[/b][0..3] [b]of[/b] Char; [b]begin[/b] [b]If[/b] OpenDialog1.Execute [b]then[/b] [b]begin[/b] bild := FileOpen(OpenDialog1.Filename, fmOpenRead); FileSeek(bild, 0, 0); [b]Repeat[/b] FileRead(bild, dmy, 2); FileSeek(bild, -1, 1); [b]Until[/b] (Ord(dmy[0]) = 255) [b]and[/b] ((Ord(dmy[1]) = 192)[b] or [/b](Ord(dmy[1]) = 194)); FileSeek(bild, 4, 0); FileRead(bild, dmy, 4); [color=#000080][i]//Höhe[/i][/color] Label1.Caption := InttoStr(ord(dmy[0]) * 256 + ord(dmy[1])); [color=#000080][i]//Breite[/i][/color] Label2.Caption := InttoStr(ord(dmy[2]) * 256 + ord(dmy[3])); FileClose(bild); [b]end[/b]; [b]end[/b]; |
Hat jemand paar Infos über tif Dateien? Da stehen die Infos irgendwie nicht gerade am Anfang.
|
So, ich verzweifel langsam echt an den tif bzw. tiff Teilen. Ich finde da nichts darüber raus. :cry:
|
Ich hätte folgende Info über den Aufbau, habe zur Zeit aber nicht die Zeit, mir das genauer anzuschauen. Vielleicht hilft es ja.
Code:
...:cat:...
Header:
0000 Byte Order 4D4D 0002 Version 002A 0004 1st IFD pointer 00000014 IFD: 0014 Entry Count 000D 0016 NewSubfileType 00FE 0004 00000001 00000000 0022 ImageWidth 0100 0004 00000001 000007D0 002E ImageLength 0101 0004 00000001 00000BB8 003A Compression 0103 0003 00000001 8005 0000 0046 PhotometricInterpretation 0106 0003 00000001 0001 0000 0052 StripOffsets 0111 0004 000000BC 000000B6 005E RowsPerStrip 0116 0004 00000001 00000010 006A StripByteCounts 0117 0003 000000BC 000003A6 0076 XResolution 011A 0005 00000001 00000696 0082 YResolution 011B 0005 00000001 0000069E 008E Software 0131 0002 0000000E 000006A6 009A DateTime 0132 0002 00000014 000006B6 00A6 Next IFD pointer 00000000 Fields pointed to by the tags: 00B6 StripOffsets Offset0, Offset1, ... Offset187 03A6 StripByteCounts Count0, Count1, ... Count187 0696 XResolution 0000012C 00000001 069E YResolution 0000012C 00000001 06A6 Software "PageMaker 3.0" 06B6 DateTime "1988:02:18 13:59:59" Image Data: 00000700 Compressed data for strip 10 xxxxxxxx Compressed data for strip 179 xxxxxxxx Compressed data for strip 53 xxxxxxxx Compressed data for strip 160 |
Du kannst auch mal in die
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz