Ressourcenerstellung unter Linux



  • 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.

    Ist das selbe. 😉



  • @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.


Anmelden zum Antworten