Etant donn� qu'on peut programmer des librairies dynamiques partag�es en C
sous BSD (avec gcc), peux-t-on y ajouter des fichiers multim�dia directement
int�gr�s � l'int�rieur, � l'instar de ce qu'il est possible de faire dans
une DLL sous Windows ?
Le but est d'int�grer dans un fichier lib.so des fichiers PNG ainsi que des
vid�os MPEG. Comme cela est possible avec Windows, je pense que cela ne pose
aucun probl�me sous BSD mais je n'ai pas trouv� d'explications sur le web.
J'ai le souvenir que sur Amiga, il y a 20 ans, il existait des outils pour
convertir une image GIF ou IFF ILBM en code source C mais cela est plut�t
lourd et d'ailleurs ne semble plus se faire.
Merci pour vos informations,
Fabrice
Avec gimp tu peux sauvegarder une image en .c.
Cordialement,
--
Sylvestre Gallon (http://devsyl.blogspot.com)
R&D @ Rathaxes (http://www.rathaxes.org)
PMBSD Lead Developer (http://www.pmbsd.org)
Il te faut un outil, genre bin2c, qui va lire tes ressources et les
enregistrer dans un fichier .c sous la forme d'un tableau d'octets (ou
autres). Il ne reste plus qu'à compiler et lier ce fichier .c avec le
reste de ton programme.
Note que cela génère des sources très volumineux, donc rallonge
considérablement la compilation.
Il y a sûrement des outils, genre bin2obj, qui convertissent directement
en fichier objet, donc tu n'as plus qu'à lier, ceci te débarrasse donc
de la phase de compilation, et te permet donc de modifier tes ressources
plus souvent sans rallonger tes temps de compilation (d'où un certain
confort de développement).
Autant le bin2c tu peux le programmer toi-même, autant le bin2obj me
paraît plus ardu, en tout cas je ne vois pas trop comment faire. Mais tu
dois pouvoir en trouver qui corresponde à ta plateforme en cherchant un
peu sur le net.
Bien sûr après cela il te faut le moyen de lire et décompresser tes
ressources comme si elles venaient du filesystem, mais ça c'est une
autre histoire.
Ham
>Avec gimp tu peux sauvegarder une image en .c.
Merci pour les diff�rentes infos. Par contre, ume image JPEG compress�e �
250 Ko se retrouve � occuper 3,5 Mo apr�s la sortie du fichier source c sous
Gimp. Il n'y a pas moyen de conserver la compression JPEG ou PNG, quitte �
devoir utiliser une autre librairie pour la lecture plus tard ? En effet,
j'ai l'impression que l'image est sauvegard�e au format RAW (sans aucune
compression).
Quant � l'outil bin2c, on trouve effectivement une collection de codes
sources � compiler sur le web, et m�me des scripts Perl. Il existe un outil
bin2c_WIN qui r�alise la m�me t�che mais sous Windows. Si l'int�gration
d'images dans des librairies UNIX ne semble pas trop poser de probl�mes,
celle de vid�os semble quasi impossible. J'ai cru comprendre sur un forum
que seul Windows avec ses DLL autorisait le concept d'ajouter des fichiers
ressources binaires dans des biblioth�ques, cela est impossible sous BSD /
Linux sans devoir tout g�n�rer en code C au pr�alable. Pour les vid�os MPEG,
je n'ai tout simplement rien trouv� de tel...
Bonne journ�e,
Fab
En fait, pourquoi veux-tu mettre tes ressources dans une bibliothèque
dynamique ? Tu pourrais aussi bien les charger depuis le disque.
Si ce que tu cherches à faire c'est d'avoir tes ressources localisées
dans un "package", que tu peux changer lors de l'exécution, alors
pourquoi ne pas simplement les gzipper de sorte que tu auras un fichier
seul contenant toutes les ressources, et utiliser la bibliothèque qui va
bien pour les lire ?
Le fait que Windows permette de mettre des ressources dans une DLL ne
veut pas dire que c'est la meilleure méthode...
Ham
Je plussois :)