TIFF mit C++
-
Hey:)
Ich bin neu hier und habe leider noch nicht soviel Erfahrung mit C++. Daher entschuldige ich mich im Voraus, wenn die Fragen unqualifiziert oder doof erscheinen, aber ich hänge an 2-3 Stellen und komme momentan einfach nicht weiter...:(.
Folgende Problemstellung: Ich soll für ein Projekt an der Uni ein C/C++ Programm entwerfen. Dieses Programm sollte dass TIFF Dateien erzeugen können und später vielleicht etwas im Quicktime Standard... Da das Ganze ja über eine GUI vorher eingegeben wurde, muss es in Echtzeit berechnet werden können.
Folgende Fragen bekomme ich nicht ganz klar beantwortet:- Ist C++ wirklich echtzeitfähig? Oft finde ich in dem Zusammenhang Pearl, damit habe ich aber gar keine Erfahrung...
- Kann ich mit einem C++-Programm TIFF Dateien erzeugen?
- Was lässt sich für einen Anfänger empfehlen, der eine GUI erstellen soll? Welche Umgebung ist da gut geeignet?
Vielen, vielen dank im Vorau für die Mühe!
Ich bin auch für Buchtipps dankbar, in denen ich Antworten finden kann.*Greez,
Jodie
-
Hallo Jodie!
1:
Die Echtzeitfähigkeit hängt primär nicht von der Programmiersprache, sondern vom Betriebssystem ab. Dieses muss dann im scheduling sowas wie earliest deadline first oder ähnliche Verfahren umsetzten, dammit dann die laufenden Programme in der definierten Echtzeit abgearbeitet werden können. Auf welches BS soll das ganze denn laufen?2:
Klar, denn wenn Du dich in den TIFF-Standard einarbeitets, dann kannst du über simple Deiteioperationen deine eigenen TIFFs zusammenbauen. Aber da gibt es sicherlich schon ferige Module im Netz, die das erledigen.
Ohne Bewertung (war nur der erste Google-Fund) http://www.libtiff.org3:
Ich nehme mal an, Du musst nicht selbst eine GUI programmieren, sonder kannst auf die MFC von Microsoft oder VCL von Borland zurückgreifen. Das wären dann auch schon zwei Beispiele.Gruß
Markus
-
Hallo Markus,
vielen, vielen Dank für die Antworten, das hilft mir schon weiter:).
zu 1): Genau das habe ich auch schon mehrfach gelesen und in dem Zusammenhang auch erfahren, dass Windows nicht echtzeitfähig ist. Das ist richtig, oder? Tja, hättest du eine Empfehlung welches Betriebssystem gut geeignet wäre? Dann würde ich mich da mal weiter informieren...
zu 2): Wow, da hast du ja richtig schnell was bei Google gefunden und ich habe mich wohl nur was blöd angestellt. Habe immer nach TIFF mit C und ähnlichem gesucht, bin da aber nicht wirklich fündig geworden. Der Link ist auf jeden Fall gut und hilft mir schonmal weiter, vielen Dank! Wenn ich das richtig verstehe, muss ich dann dieses (oder ein anderes) Modul in meinem Quellcode einbinden und kann die mitgelieferten Funktionen dann nutzen.
zu 3): Prima, das sind schon super Hinweise. Diese Frage ist dann wohl eng verknüpft mit dem benutzten Betriebssytem. Ich würde ganz gerne Borland nehmen, weil ich das schon ein bisschen kenne... Aber muss auch nicht sein, wenn es zu einem anderen BS eine andere Möglichkeit gibt...
Viele Grüße,
Jodie
-
Hi Jodie!
1:
http://de.wikipedia.org/wiki/Echtzeitbetriebssystem
da sind einige BS aufgelistet. Du solltest aber vorher die Frage klären, ob wirklich harte Echtzeit nötig ist. Unter Windows (nicht echtzeitfähig) ist ja auch sogenannte "weiche Echtzeit ( http://de.wikipedia.org/wiki/Echtzeitsystem )" möglich, z.B. beim Anhören vom MP3 Dateien. Denn die werden ja auch erst während des Abspielens decodiert.
Ansonsten habe ich keine Erfahrungen mit Echtzeitbetreibssystemen, so dass ich Dir auch keine Empfehlung insebesonder in Bezug auf Punkt 2) und 3) machen kann.
Falls weiche Echtzeit möglich ist, dann muss Du "nur" effiziente Algorithmen für dein Problem finden.2:
Prinzipiell ja, aber bis das erstmals läuft vergehen erfahrungsgemäß schon mal 2 bis 3 Std.
3:
Wie Du schon sagst, solange kein BS feststeht, ist hier nur schwer ein Tipp zu geben.So, ich fahre jetzt in den Urlaub, schließlich sind Semesterferien (hast Du an deiner UNI keine?)
Viel Erfolg!
Gruß
Markus
-
@Jodie
ad 1) Vergiss es, und verwende Windows. Windows ist zwar nicht echtzeitfähig, aber was willst du sonst nehmen? Linux ist auch nicht echtzeitfähig. Natürlich gibt es QNX und WindRiver und andere echtzeitfähige Betriebssysteme, bloss ist es recht viel Aufwand sich da reinzukämpfen wenn man noch nie damit gearbeitet hat. Wenn du deinen Code nicht gerade eng an ein System bindest kannst du im schlimmsten Fall immer noch portieren.ad 2) Ja, klar. Guck dir vielleicht die FreeImage mal an (die kann u.a. TIFFs lesen und schreiben, und auch noch ein paar andere Dinge die man evtl. brauchen kann wie Farbraumkonvertierung, Rotieren, Grösse ändern, Helligkeit anpassen, Gamma anpassen, ...): http://freeimage.sourceforge.net/
ad 3) Pfuh. Bei MFC und VCL wäre ich vorsichtig, damit nagelst du dich auf einen Compiler fest. Ich würde dir eher empfehlen dir wxWidgets anzusehen, bzw. eine andere portierbare GUI Library.