File Open umleiten
-
Hallo Zusammen!
Ich war unterwegs um ein Board im Bereich der Programmierung, speziell C/C++ zu suchen und bin hier gelandet. Programmiere schon seit vielen Jahren, alles begann mit Assembler und C, dann weiter auf C++ (meist unter Linux). Freu mich auf das Lesen interessanter Beiträge und hoffe auch Fragen stellen zu können...Damit darf ich auch beginnen - bin für alle Tipps dankbar:
Ich möcht Bildmaterial öffnen, diese Bilder sind allerdings viel zu groß und überfüllen den RAM. Darum sollen sie auch "verkleinert" (Farbtiefe und Auflösung) werden. Die Idee ist, dass jedes beliebige Tool die Grafik öffnen kann, aber im Laufe des Ladens die Kompremierung stattfindet. Mein Tool soll sich da quasi dazwischen schalten. Zum Beispiel das Tool starten, die gewünschte Datei angeben und ein Dummy-File erzeugen, was von jedem beliebigen Grafikprogramm geöffnet werden kann. Wenn dann auf das Dummy-File zugegriffen wird liest dieses die Bilddaten ein und komprimiert es on the fly. Die Komprimierung ist kein Problem, die Frage ist wie ich das Anlegen eines Dummy-Files (oder auch andere Ideen) verwirklichen kann...Hat da wer Ideen?
Danke und Grüße,
Morly
-
Auf einem Unix-artigem System könntest du die Betriebssystemstandardfunktionen zum Lesen aus Dateien mit deinem Filter neu schreiben (also einen Wrapper um diese Funktionen machen). Dann kannst du diese einem beliebigem (dynamisch gelinkten) Programm mittels LD_PRELOAD unterschieben.
Das ganze ist aber auf jeden Fall sehr systemabhängig und gehört in das entsprechende Systemprogrammierungsforum. Bevor hier noch weitere Antworten zu allen möglichen Systemen kommen, solltest du am besten mal deine Zielplattform nennen, damit du verschoben werden kannst.
P.S.: Und es gibt zwei verschiedene Sprachen: C und C++. C/C++ steht hier im Forum als Synonym für den Mischmasch den man in schlechten Büchern gelehrt bekommt und bei dem man am Ende gar nichts richtig kann.
-
Danke für die Antwort,
sollte heissen: ich programmiere sowohl C als auch C++,
Unterschied ist mir natürlich bekannt.Jetzt zum Dilemma: es soll unter Linux (persönlich verwende ich Gentoo) als auch Windows (XP+7) lauffähig sein.
Danke und LG,
Morly
-
Dann verschiebe ich dich mal in's allgemeine Programmierungsforum. Aber ich glaube, die Chancen stehen nicht gut, einen plattformübergreifenden Mechanismus zu finden.
Da du ein eventuelles Programm sowieso einmal für Linux und einmal für Windows compilieren musst, wäre es eine Überlegung wert, zwei verschiedene Programme zu schreiben.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x, bzw. C++11) in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Absolut kein Problem,
schreib auch gerne zwei Tools, eins für Lin eins für Win...Lies gerade mal die Beispiele für LD_PRELOAD - klingt super.
Also kurzum, schreibe zwei Tools,
bin aber immer noch für Infos dankbarMorly
-
OK - hab jetzt ein Versuchsprog geschrieben,
dass die Funktion open und fopen abfängt,
debug-Meldungen (Pfad, ...) ausgibt, und dann die
Datei öffnet.Viele viele Files wandern dort rein,
leider aber nicht das, was ich öffne...(verwendete zum Testen kolourpaint)...
Ich würde einfach nur gerne den FileOpen Dialog abfangen...