Ressourcenerstellung unter Linux
-
Also, wie devkid schon sagte, kannst du zum einen die Bilder so mitliefern, das Bild als xpm speichern und dieses dann später nutzen oder das Bild in ein C Array konvertieren und aus dem später laden.
-
guenni81 schrieb:
Also, wie devkid schon sagte, kannst du zum einen die Bilder so mitliefern, das Bild als xpm speichern und dieses dann später nutzen oder das Bild in ein C Array konvertieren und aus dem später laden.
-
@devkid
Kann ich jetzt nicht unbedingt behaupten das dies das selbe ist. Mit der XPM Methode hatte ich stellenweise eine schlechtere Bildqualität wie wenn ich diese mittels C Code hinzugefügt hatte. Man muß natürlich aber auch an dieser Stelle sagen das es sich um png Dateien mit Alpha Transparenz gehandelt hat.
http://wiki.wxwidgets.org/Embedding_PNG_Images
-
guenni81 schrieb:
Mit der XPM Methode hatte ich stellenweise eine schlechtere Bildqualität wie wenn ich diese mittels C Code hinzugefügt hatte.
XPM ist ein eingebettetes C-Array.
-
devkid schrieb:
XPM ist ein eingebettetes C-Array.
Tja, war leider aber meine Feststellung bis jetzt.
Soweit ich aber weiß betrefft dies nur die png Dateien mittels Alpha Transparent.
Zitat aus dem von mir weiter oben genannten Link:The bad thing about XPM inclusion is the inflating of executables size and the lacking of alpha transparency.
-
Vielen Dank euch Beiden, habe es jetzt so gemacht wie guenni81 es unter dem link http://wiki.wxwidgets.org/Embedding_PNG_Images gezeigt hat, und bin sehr zufrieden
Verwendet habe ich ein 10k GIF und mit bin2c in ein cpp - file verwandelt als static const c-array abgelegt, mit einem memory stream eingelesen, und via wxImage-Konstruktor in ein gültiges image vom Typ GIF verwandelt. Dickes thx
Jetz habe ich aber noch eine Frage, eigentlich gehört sie ins Ansi-C oder C++ Forum aber da ich den Tip von hier habe frage einfach hier. Was mir nicht schmecken will ist die Tatsache das ich ein Objekt-File erstellen muss (cpp).
Ich verwende jetzt PCH (precompiled header) und würde gerne die ganze Ressource im PCH unterbringen, aus Performancegründen (bringt das was?) und auch, weil mir ein #include "my_icon.cpp" nicht so recht passen will.
Was bzw. wie würdet Ihr es machen ?
-
pch bringt hier gar nix.
im header steht ja nur die deklaration auf die daten. kostet keine compiliergeschwindigkeit. reinmixen tut die daten dann nachher der linker.
-
Danke, aber bei mir wird nichts mehr vom linker reingemixt, da ich via #include "my_icon.cpp" den Quelltext übernehme, ist ein extern Verweis nicht mehr möglich. Zusätzlich ist ist das array als static const c-array abgelegt, da hätte ich ohnehin (regulär) keinen Zugriff von ausserhalb. Die Datei "my_icon.cpp" also wird nicht kompiliert und nicht gelinkt, daher meine PCH Überlegungen.
-
Geplant war aber, daß Du eine "my_icon.h" baust und die "my_icon.cpp" ganz normal ins Projekt aufnimmst.
Oder hast DU jemals davon gehört, daß jemand eine *.cpp inkludiert?
-
volkard schrieb:
Geplant war aber, daß Du eine "my_icon.h" baust und die "my_icon.cpp" ganz normal ins Projekt aufnimmst.
Von wem? Dir? Nicht das ich wüsste.
Ließ mal den Abschnitt Including in http://wiki.wxwidgets.org/Embedding_PNG_Images dort wird dir geholfen.
-
Also ich habe es jetzt so gemacht das ich die "cpp" in "hpp" umbenannt habe, die Datei wird im PCH gelistet und somit nur bei einem Full-Rebuild neu übersetzt, das ganze arbeitet dann so das jedes modul seine eigene Variable mit dem Namen my_image enthält, da diese aber als Konstante definiert ist, wird sie vom linker wie EINE Variable behandelt und somit auch nur einmal im Daten-Segment angelegt. Damit erspare ich mir lästige extern und Kompilierzeit.