![]() |
Re: Stream schnell durchsuchen
Zitat:
@Mavarik: Ganz einfach: Die Streams machen afaik intern nichts anderes, aber man hat im OOP-Sinne eine schöne Klasse, mit der man alles machen kann. Ferner kann man den Stream dann auch ganz einfach in ein TJPEGImage laden (LoadFromStream) |
Re: Stream schnell durchsuchen
Zitat:
|
Re: Stream schnell durchsuchen
Moin,
aus der Sicht eines alten Vogels existieren die I/O-Routinen aus der TP-Zeit schon lange nur noch aus Gründen der Abwärtskompatibilität. Dass sich die modernen Stream-I/O Komponenten endgültig durchsetzen werden ist nur noch eine Frage der Zeit. Der kurze Kampf zwischen dem CP/M orientierten FCB (file control block) und dem UNIX file handle wurde von Microsoft mit Einführung von MS DOS 2.10 bereits für entschieden erklärt. Damals hat man sich entschieden das XENIX I/O-Konzept für MS-DOS zu adaptieren. Heute setzen Streams direkt auf den vereinheitlichten I/O-Routinen des Betriebssystems auf, wärend ein FCB (Assign, Reset, Rewrite, Close) eine unnötige gepufferte Zwischenschicht darstellt, die TP aus seiner CP/M-Zeit mitbrachte. Den OO-Charakter würde ich nicht so strapazieren, da es kein Problem darstellt auch für einen FCB eine OO-Kapsel zu stricken. Freundliche Grüße vom marabu |
Re: Stream schnell durchsuchen
Du suchst nach $FF $D9 als Marker
1.) bedenkst du auch das JPEGs in Litte Endian wie auch Motorola Big Endian Format gespeichert sein können ? Also $D9 $FF wäre ebenfalls eine gültige Signatur je nachdem welches Format das JPEG benutzt 2.) warum Suchen wenn man aus dem JPEG Format direkt die Position und Typ des Thumbsviews ermitteln kann ? Was du da codest ist eine Brute Force Methode, sehr ineffiziente Vorgehensweise ;) 3.) das nächste mal bitte Suche nutzen -> ![]() Gruß Hagen |
Re: Stream schnell durchsuchen
:shock:
Also so langsam habe ich echt das Gefühl, dass keiner meinen Anfangsbeitrag gelesen hat. Ich suche weder nach einem String (@flossinger) noch möchte ich das Thumb aus einer JPEG-Datei extrahieren (@Hagen). Ich möchte das Thumbnail aus einem Bild, welches im Canon Rohdatenformat (*.CR2) vorliegt extrahieren. Dieses - das Thumb - liegt im JPEG-Format vor. Es beginnt immer beim Offset $2600 und ich muss lediglich das Ende herausfinden. Dabei ist nicht davon auszugehen, dass das Format der JPEGs unterschiedlich ist. EDIT: Ich habe übrigends die Suche genutzt. Doch leider gibt es zu dem Thema fast nichts in der DP. Eigentlich wäre es mir bspw. auch lieber das Format direkt zu interpretieren und nicht auf die Thumbs zurückzugreifen, aber das habe ich mittlerweise schon (fast) verworfen. |
Re: Stream schnell durchsuchen
Hallo Lars,
ich kann nicht glauben, dass du nach einem Ende suchen musst. Da es sich bei CR2 um ein TIF-Format handelt, sollte sich doch irgendwo eine Längen-Information finden lassen. Die Start-Info ist ja auch verzeigert. Hast du dich denn schon als Entwickler bei Canon registrieren lassen? Dann hast du Zugriff auf den SDK und ich erwarte da auch ein paar Informationen. Vielleicht nicht zu der proprietären Verschlüsselung, von der ich gelegentlich lese, aber auf alle Fälle zu den Tags. Grüße vom marabu |
Re: Stream schnell durchsuchen
Zitat:
Zitat:
1.) Erzeuge eine Stream auf deine Datei 2.) Setzte STream.Position := $2600 3.) rufe LoadJüegThumb(Steam) aus meinem Attachment auf fertig. Nichts mit Suche im Stream oder sowas Brute Force mäßiges. Die Unit in meinem Attachment liest dabei gezielt das JPEG (eg. TIFF -> JIF) Format aus und ermittelt wo und in welcher Größe das Jpeg-Thumb gespeichert wurde. Am bestens einfach mal ausprobieren und wenn es funktioniert dann wird es weitaus schneller funktionieren als deine Brute Force Methode. Und wenn es funktioniert dann heist dies auch das Du die Antworten nicht richtig liest und Andere sehr wohl deine Frage gelesen haben und auch verstanden haben dir eine Lösung anzubieten. Immerhin willst du etwas und die Anderen schenken dir eine Antwort, kostenlos wohlgemerkt (mann könnte dir ja auch den Stundenlohn in Rehcnung stellen in der dir die Anderen ihre Zeit opfern). Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 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-2025 by Thomas Breitkreuz