Tuto des n00bs, pour bien débuter et tout savoir sur le hack Wii de A à Z

?
RépondreNouveau Topic
>?[DEV] Intégrer une image JPEG dans son programme
·
?
", img_item + " Standard", img_item + " Passer au mode: Linéaire+", img_item + " Passer au mode: En ligne" ) ); topic_rate.settings['allow_rating'] = parseInt("0"); topic_rate.settings['default_rating'] = parseInt("0"); topic_rate.settings['img_base_url'] = ipb_var_image_url + '/folder_topic_view'; topic_rate.settings['div_rating_wrapper'] = 'topic-rating-wrapper'; topic_rate.settings['text_rating_image'] = 'topic-rating-img-'; topic_rate.languages['img_alt_rate'] = "Estimer ce sujet, cliquez sur la personne désirée pour envoyer l'estimation"; topic_rate.languages['rate_me'] = "Note le sujet:"; topic_rate.init_rating_images(); -->
DarK1LL3r
* 11 Jan 2009, 21:19
Message #1


Wii Geek
Statut: Modérateur
Messages: 1 701
Inscrit le 15-April 07
Membre N° 861
Lieu: Lyon
Bonjour à tous!
Je me lance dans la programmation et j'ai donc décidé de vous faire un petit tuto sur l'intégration d'une image de type JPEG dans votre HomeBrew.

Les sources de mon travail sont dispo dans le topic pour une meilleure compréhension

Pour ceci, vous avez besoin de la bibliothèque libogc_jpeg disponible ici.
Une fois le fichier téléchargé, décompressez le dans C:\devkitPro\devkitPPC\powerpc-gekko

Après il nous faut modifier notre makefile pour lui ajouter la bibliothèque :
Après "any extra libraries we wish to link with the project"
Code
LIBS????:=??-logc -lm -ljpeg


Nous devons créer un fichier picture.s dans ../source qui contiens ceci :
Code
.rodata
.balign 32
.globl piclength
.globl picdata

piclength:????.long????picdataend - picdata
picdata:????.incbin "../include/Wii Addict.jpg" //adresse de l'image
picdataend:


Ensuite, il faut dire à notre programme d'utiliser la bibliothèque. Ajoutez donc dans votre fichier .c :
Code
#include


Nous devons ensuite définir deux variables : picdata et piclength
Code
char picdata[];
int piclength;


Puis créer une fonction JPEG :
Code
void display_jpeg(JPEGIMG jpeg, int x, int y)
{
????unsigned int *jpegout = (unsigned int *) jpeg.outbuffer;

????int i,j;
????int height = jpeg.height;
????int width = jpeg.width/2;
????
????for(i=0;i<=width;i++)
????{
????????for(j=0;j<=height-2;j++)
????????{
????????????xfb[(i+x)+320*(j+16+y)]=jpegout[i+width*j];
????????}
????}
????
}


La première ligne dans la fonction est liée à la façon dont la bibliothèque jpeg fonctionne. Plus tard, vous verrez que nous décompressons les images jpeg. A ce moment là, l'image est stockée dans jpeg.outbuffer.

Les lignes suivantes définissent des variables locales de hauteur et de largeur, puis copient le jpeg sur le frame buffer (l'écran) pour les coordonnées que nous avons définis en tant que x et y.
La dernière ligne de la fonction veille à ce que nous ayons effacé l'espace dans la mémoire où nous avons fait une copie locale de l'image jpeg (unsigned int * jpegout = (unsigned int *) jpeg.outbuffer;)

Nous pouvons maintenant utiliser notre fonction dans le main pour afficher une image. Il faut d'abord déclarer une variable qui utilise notre fonction :
Code
JPEGIMG wiiaddict;


Ensuite il faut assigner de la mémoire à notre image :
Code
memset(&wiiaddict, 0, sizeof(JPEGIMG));


Nous définissons les variables de wiiaddict conformément à notre picture.s :
Code
wiiaddict.inbuffer = picdata;
wiiaddict.inbufferlength = piclength;


On décompresse notre image :
Code
JPEG_Decompress(&wiiaddict);


Il ne nous reste plus qu'à appeler notre fonction pour afficher notre image aux coordonnées souhaitées :
Code
display_jpeg(wiiaddict, 0, 0);



Et voila ce que cela nous donne avec les sources que je fournis :
(IMG:http://www.zimagez.com/miniature/11012009218.jpg)

Petites notes :
-L'écran a une résolution de 640 pixels en largeur
Fichier(s) joint(s)
Fichier joint ?HelloWorld.zip ( 439.69Ko ) Nombre de téléchargements: 33
?

Bhaal
* 11 Jan 2009, 23:07
Message #2


Wii Ex Admin
Statut: user
Messages: 5 239
Inscrit le 5-January 07
Membre N° 244
Genial va falloir que j'essaye (IMG:style_emoticons/default/wink.gif)

on peut avoir la source complete en piece jointe du message ? je voudrais voir comment tout cela est dispose dans le fichier

merci

DarK1LL3r
* 11 Jan 2009, 23:27
Message #3


Wii Geek
Statut: Modérateur
Messages: 1 701
Inscrit le 15-April 07
Membre N° 861
Lieu: Lyon
Ben j'ai joint tout le projet. Je donne le lien dans le message.

EDIT : J'ai joint le projet dans le topic.

Bhaal
* 12 Jan 2009, 07:05
Message #4


Wii Ex Admin
Statut: user
Messages: 5 239
Inscrit le 5-January 07
Membre N° 244
merci, j'ai deux question de plus :

Citation
picdata: .incbin "../include/Wii Addict.jpg" //adresse de l'image

c'est adresse par rapport a où ? j'ai pas de dossier "include" dans le hello world à moins qu'il le creer ...


Citation
-L'écran a une résolution de 640 pixels en largeur

la banniere de wa est plus grande que 640px, t'as redimensionner la banniere avant ?

EDIT
====
ben en fait en regardant le projet joint, j'ai compris:
- oui faut creer le dossier "include" dans le helloworld
- oui ton image est redimmensionne

merci (IMG:style_emoticons/default/smile.gif)

silverfly
* 12 Jan 2009, 16:35
Message #5


Référenceur
Statut: Modérateur
Messages: 2 566
Inscrit le 24-July 07
Membre N° 1 768
Lieu: Paris
Super (IMG:style_emoticons/default/smile.gif)
On a le truc pour mettre des images, le système pour les boutons, et de quoi mettre du texte (IMG:style_emoticons/default/tongue.gif)
Sa avance ^^


==> Sa marche nikel (IMG:style_emoticons/default/smile.gif) C'est super ! Merci Dark !!!

wiiray
* 6 Feb 2009, 23:00
Message #6


Wii Noob
Statut: Membre
Messages: 2
Inscrit le 24-January 09
Membre N° 8 220
Lieu: Les Andelys (27)
Désolé si je suis limite hors sujet (mais je ne trouve pas l'endroit idéal pour poser ça !)

Je voudrais récupérer des images sympa (fabriquées avec Wii-Ski) qui se trouvent maintenant dans la chaine photo.
savez-vous comment les récupérer ? (y aurait-il un homebrew approchant la soluce ?)

Merci pour votre réponse, même négative.

Nany63
* 7 Feb 2009, 13:09
Message #7


Dépanneur Professionnel
Statut: Membre V.I.P
Messages: 8 041
Inscrit le 10-November 08
Membre N° 4 261
Lieu: Clermont-Ferrand

J'ai une réponse trés négative (IMG:style_emoticons/default/angry.gif)

Tu vois bien que ta question n'a rien avoir avec le sujet : ici on parle de programmation comment ajouté une image sur une application fait maison... et toi tu pose une question sur comment récupéré une image faite à partir d'un jeu commercial !

Commence par créer un topic (de préférence dans la Section SAV et non pas programmation Amateur) en donnant plus de détails. Mon avis personnel : si c'est sur ta wii, c'est dans ton NAND ... si c'est dans ton NAND c'est récupérable ... mais bien que cela soit récupérable cela ne veux pas dire que ce sera forcément exploitable !

Réponse rapideRépondreNouveau Topic
2 utilisateur(s) sur ce sujet (2 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s):
?

RSS
Version bas débit
Design by ©Sylkun "WiiD"
Nous sommes le : 20th August 2011 - 10:18
Déclaré à la CNIL : n° 1214365