Der Versuch, eine für einen schnellen Scanner optimierte Bilderfassungsanwendung zu erstellen (die bis zu 6 komprimierte Bilder [Farbe + Grau + Binär] [vorne + hinten] für jedes Papier bei einer Geschwindigkeit von 150 ppm liefern kann) habe etwas Geschwindigkeit Probleme. Verwenden der TWAIN-Technologie und des Speicherpuffer-Übertragungsmodus (TWSX_MEMORY) Ich empfange den Bildpuffer (als JPEG- oder TIFF-Datei im Speicher geladen) vom Scanner und speichere ihn im Zielpfad meiner Anwendung. Wenn ich keine Thumbnails erstellen möchte, verursacht meine Anwendung keinen Geschwindigkeitsverlust für den Scanner, aber wenn ich möchte, so wie ich es mache (Speichern des Puffers in einer Datei in meiner C++ TWAIN-Handling-DLL, Benachrichtigen meines .NET-Hosts) Anwendung mit dem Zieldateipfad unter Verwendung eines Funktionszeigers, Öffnen der Bilddatei in C# und Erstellen des Miniaturbilds), führt meine Anwendung zu extremer Geschwindigkeitseinbuße bei der Abtastgeschwindigkeit. Ich habe einige Optimierungen versucht, zum Beispiel die Ladephase in einem separaten Thread durchzuführen und den nicht verwalteten Image-Dateipuffer an den .NET-Host zu senden und zu versuchen, ihn in einem unsicheren Kontext (UnmanagedMemoryStream) zu laden und ein Thumbnail zu erstellen. Aber es hat die Geschwindigkeit nicht wesentlich verbessert. Meine Frage ist also:Haben Sie einen Bilddateipuffer im Speicher? Was ist der schnellste Weg, um ein Miniaturbild zu erstellen?
Haben Sie einen Bilddateipuffer im Speicher (z. B. 24-Bit JPEG komprimiert ohne eingebettete Miniaturansicht), gibt es eine schnelle direkte Möglichkeit, ein Miniaturbild daraus zu erstellen? Was empfehlen Sie als schnellste Methode zum Erstellen von Thumbnails in diesem Fall?
Danke, es scheint zu sein, was ich wollte. –
Ich habe es geschafft, EPEG zu testen, für alle, die daran interessiert sind, das gleiche zu tun, sollte ich erwähnen, dass die EPEG-Bibliothek nun aus dem Erleuchtungsquellcode entfernt wurde, also sollten Sie sie in ihren alten Quellcodes suchen, zum Beispiel hier: http://download.enlightenment.org/snapshots/2008-01-25/. –
Für TIFF-Bilder habe ich diesen Code verwendet: http://www.koders.com/c/fidFAE1882A0596B9D224D831B852AE9891D0154D6D.aspx. Es ist nicht so schnell wie EPEG, aber die Arbeit erledigt. –