Ich möchte LibTiff verwenden, um auf sehr große TIFF-Dateien zuzugreifen. Ich brauche Funktionen wie mehrere Seiten und Kacheln, und so scheint LibTiff der richtige Weg zu sein. Kann mir jemand helfen, LibTiff von C# zu benutzen? Ich habe einige Links gefunden (wie blog.bee-ee, die teilweise Code enthielten. Aber ich konnte nicht über eine Version hinauskommen. Ich habe mir FreeImage angesehen, fand es aber nicht geeignet (Bilder sind ca. 800 MPixel 8 oder 16 Bit Graustufen - > 800-1600 MByte) Größe und ich kann es nicht im Speicher in einer 32-Bit-Umgebung laden)Verwenden von LibTiff von C# (um auf gekachelte TIFF-Bilder zuzugreifen)
Ich bin sehr erfahren in C/C++, aber noch nicht in C#. Kann mir jemand einen Umschlag oder Hinweise geben?
Hinweis: Ich brauche Seiten für den Zugriff auf pyramidenförmige Ebenen (Multi-Resolution) in einem TIFF und Kacheln von 256x256, um schnellen Zugriff auf verschiedene Teile des Bildes zu haben, ohne es sofort zu laden.
[Bearbeiten] Die LibTIFF.NET Lösung schien am praktischsten für mich. Ich bin jetzt dabei, es in eine Produktentwicklung zu integrieren, und es wird mir wahrscheinlich viele Kopfschmerzen ersparen, wenn ich den verwalteten Speicher betrete. Ich habe die Callback-Funktion noch nicht ausprobiert, die anscheinend in .net-Form gut gelöst ist. Danke für die Hilfe auf stackoverflow [/ Edit]
Danke. Meine ersten Tests sehen gut aus. Obwohl ich eine Wrapper-Klasse gefunden habe, hatte sie keinen bekannten Autor und ich würde früher oder später Probleme mit dem Zugriff auf verwaltete/nicht gemanagte Speicherressourcen bekommen. Benchmarks zeigten mir eine gleichwertige Leistung beim Lesen von nicht komprimierten Dateien und einen 50% Performance-Hit bei komprimierten, pyramidenförmigen Adobe-Tiffs. Das ist akzeptabel für mich. Ich entscheide mich, keine Komprimierung zu verwenden, und ich werde besser sein, meine Software mehrkernfreundlich zu machen, als Speicherprobleme zu lösen. – Adriaan
Vielen Dank, Adriaan unsere Implementierung ist definitiv langsamer als die ursprüngliche Sprache der Wahl :-) – Bobrovsky
Es stört mich nicht. Für mein Projekt bedeutet Performance Funktionalität/Euro. Und Entwicklungsstunden sind 95% der Kosten. Ich kann einfach einen Quadcore einwerfen, um das auszugleichen. Außerdem, wenn ich mich von der Kompression fern halte, ist der Unterschied gering. Und meine Dateien komprimieren nur etwa 10%, das sind also nur 100Myte pro Datei ;-) – Adriaan