Aller au menu - Aller au contenu

Jpeg vers cpp

Insérer un jpeg dans son code source

Pour accéder à cette section
Connectez-vous !
connexion_rpx

Résolu Le problème de ce sujet a été résolu

Page 1 
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1 
Hors ligne Froyok # Posté le 19/06/2009 à 18:15:06
EXIL Creator
Avatar

Voilà, après moult recherche je ne trouve pas de programme (toute mes recherches avec google me renvoies vers des codes sources pour convertir une image jpeg vers un autre format, pas vraiment ce que je souhaite...) ou de technique permettant de faire cela :

Dans le cadre de mon moteur 3D, j'aimerais que la texture par défaut qui remplace les textures introuvables ou manquantes, lors d'un glbind, ne soit pas une texture qui soit sur le disque dure (pour éviter justement tout crash si la texture par défaut venait à manquer.

Donc je me suis dit que je devais insérer mon image dans mon code source, je sais que c'est possible (c'est à dire convertir un jpeg en cpp), même que quelqu'un sur ce forum proposait dans sa signature un programme exécutant cela. Mais pas moyen de mettre la main dessus.

Si quelqu'un connait ce programme, ou à plus d'informations sur la démarche à suivre je vous remercie d'avance ! ;)


Image utilisateur
 
Publicité # Posté le 19/06/2009 à 18:15:06

Hors ligne Hiura # Posté le 19/06/2009 à 18:42:33
Avatar
Flux RSS

Études : EPFL

Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Ceci devrait t'intéresser : http://www.sfml-dev.org/forum-fr/viewtopic.php?t=1977
 
Hors ligne Froyok # Posté le 19/06/2009 à 18:48:20
EXIL Creator
Avatar

Merci beaucoup ! Grâce à cela je suis tombé sur bin2h, qui m'a permis de créer un h de mon fichier jpeg, mais pas contre, comment indiquer à mon map (qui reçois des données string) qu'il faut charger le tableau/char et non un string ?

Une conversion char>string est une bonne chose ?
Car en fait, comme j'ai convertis un fichier en h, il vaudrais mieux que je renvois ce fichier directement à ma fonction sdl qui charge les images non ?

[EDIT] Je vais faire néanmoins quelques tests...
Édité le 19/06/2009 à 18:59:06 par Froyok

Image utilisateur
 
Hors ligne Hiura # Posté le 19/06/2009 à 19:39:13
Avatar
Flux RSS

Études : EPFL

Avec la SDL je sais pas du tout. Mais avec la SFML tu charges le fichier en mémoire et tu utilises sf::Image::LoadFromMemory().

Je te conseille de regarder quelques commentaires sur la SFML et ces différence avec la SDL. Tu ne le regreteras pas. ;)
 
Hors ligne Froyok # Posté le 19/06/2009 à 19:46:33
EXIL Creator
Avatar

Je vais voir ça... Merci ! :)

Citation : Hiura
Je te conseille de regarder quelques commentaires sur la SFML et ces différence avec la SDL. Tu ne le regreteras pas. ;)


Ne serais-ce pas une incitation à migrer vers SFML ? :D
Édité le 19/06/2009 à 19:52:50 par Froyok

Image utilisateur
 
Hors ligne Hiura # Posté le 19/06/2009 à 20:18:04
Avatar
Flux RSS

Études : EPFL

Oui ! :p
 
Hors ligne boli # Posté le 19/06/2009 à 20:48:37
Avatar
Validateurs

Salut,

Il y à gimp aussi qui permet de tranformer une image en code source, parcontre ne me demande pas ce que sa vaut, testé vite fait sur un image de 280k en haute qualité, il me crache un fichier de 91K lignes ...
Hors ligne Froyok # Posté le 19/06/2009 à 21:08:33
EXIL Creator
Avatar

Ok, je regarderais, m'enfin ça fait beaucoup de lignes ! :D
Y'a t'il moyen d'intégrer une fichier spécifique dans un exe ? J'essaye de voir avec Code::Block si c'est possible, mais sinon avec ressource hacker cela ne marche pas...

Image utilisateur
 
Hors ligne Hiura # Posté le 19/06/2009 à 22:55:26
Avatar
Flux RSS

Études : EPFL

Sous windows il y a bien des techniques mais c'est pas portable.
 
Hors ligne Froyok # Posté le 19/06/2009 à 23:26:01
EXIL Creator
Avatar

Ouais bah effectivement je vais éviter toute technique unique à windows ! :)
Je vais essayer de pousser tous ça, mais bon ça m'embête un peu dans l'état actuel.

[EDIT]
Bon, j'abandonne l'affaire, le seul moyen que j'ai trouvé c'est l'usage des rc, mais c'est propre à windows, donc j'oublie cette étape, et je passe à la suite, j'ai plus urgent à faire ! :p (comme charger des niveaux 3d, ce serais bien...)
Édité le 20/06/2009 à 16:24:05 par Froyok

Image utilisateur
 
Hors ligne Froyok # Posté le 26/06/2009 à 15:33:11
EXIL Creator
Avatar

Finalement le problème a été résolu, grâce à l'aide récupéré sur developpez (ils vous font concurrence les gars ! :p ).

En gros, avec l'utilisation de bin2h, j'ai récupérer mon char, il ne me restais plus qu'a le charger avec
Code : C++
1
2
3
4
5
6
SDL_Surface *s

{
    #include "default.h"
    s = IMG_LoadTyped_RW(SDL_RWFromConstMem(file, file_size), 1, "jpg");
}


Ou file et le nom de mon tableau, et file_size sa taille. Voilà, après un simple usage d'opengl et de la sdl pour en récupérer une texture. Cela fonctionne.

La discussion developpez se trouve ici : Discussion sur developpez

Bon, me reste encore à corriger un point : éviter les doublons, pour le moment à chaque texture manquante il me charge la texture par défaut, mais même si elle est déjà en mémoire il me la rehcarge et donc bouffe un peu plus de mémoire inutilement. Faut que je corrige ça, car si plus tard j'ai 300 textures manquantes, ça fera lourd sur la ram.

Image utilisateur
 
Hors ligne Hiura # Posté le 27/06/2009 à 01:04:31
Avatar
Flux RSS

Études : EPFL

Ouais, c'est la même chose que mon lien en gros, mais pour une moins bonne bibliothèque ( à mon gout ) .
 
Hors ligne Froyok # Posté le 28/06/2009 à 01:56:55
EXIL Creator
Avatar

Roofl.
Si je ne passe pas à SFML c'est pour plusieurs bonnes raisons :
-trop récent, donc j'ai peur de devoir souvent adapter mon code (même si laurent fait en sorte que ce ne soit aps le cas)
-moins bon support, car pas assez répandu aujourd'hui
-et j'ai un amis dans la prog qui connait la sdl sur le bout des doigts, donc ça aide :p !
Édité le 28/06/2009 à 17:56:01 par Froyok

Image utilisateur
 
Hors ligne Ice_Keese # Posté le 28/06/2009 à 02:18:00
Life is weird (and awesome)
Avatar

Études : UdS

Citation : Froyok
Roofl.
Si je ne passe pas à SFML c'est pour deux bonnes raisons :
-trop récent, donc j'ai peur de devoir souvent adapter mon code (même si laurent fait en sorte que ce ne soit aps le cas)
-moins bon support, car pas assez répandu aujourd'hui
-et j'ai un mais dans la prog qui connait la sdl sur le bout des doigts, donc ça aide :p !

SFML lave la SDL, niveau performance. Et elle est vraiment orientée objet.

Image utilisateur
 
Hors ligne Froyok # Posté le 28/06/2009 à 02:35:17
EXIL Creator
Avatar

Quel serais le gain dans un gros projet concrètement ?
(Usage d'opengl avec shaders glsl, moteur physique, etc.)

Image utilisateur
 
Hors ligne Ice_Keese # Posté le 28/06/2009 à 02:51:10
Life is weird (and awesome)
Avatar

Études : UdS

Hors ligne Hiura # Posté le 28/06/2009 à 09:39:15
Avatar
Flux RSS

Études : EPFL

Citation : Ice_KeeseIl n'est pas vieux, Laurent l'a mis à jour dernièrement.
 

Retour au forum "Langage C++" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx