ducseb Posté(e) 4 septembre 2005 Share Posté(e) 4 septembre 2005 Salut voila encore un autre problemme comment afficher des images avec le PSPSDK J'ai vu que sur ps2dev.org qu'il existait un prog qui convertit une image en code C Comment utiliser et comment afficher une image sur le jolies ecran de la PSP ? Merci Lien vers le commentaire Partager sur d'autres sites More sharing options...
sasuke2911 Posté(e) 4 septembre 2005 Share Posté(e) 4 septembre 2005 tu a plusieur facon tu utiliser directement un fichier bmp/png etc ... en utilisant sdl/libpng c plus simple que de transformer ton bmp en c Lien vers le commentaire Partager sur d'autres sites More sharing options...
ducseb Posté(e) 4 septembre 2005 Auteur Share Posté(e) 4 septembre 2005 Ok je vais voir ca et je mettrai un bout de code quand ca serat bon pour ceux qui passe après Merci Lien vers le commentaire Partager sur d'autres sites More sharing options...
TheNetWarrior Posté(e) 6 septembre 2005 Share Posté(e) 6 septembre 2005 Salut, alors... persone pour nous donner un bout de code fonctionnel avec pspide sans inclure pg.h du hello world de nem? merci Lien vers le commentaire Partager sur d'autres sites More sharing options...
maestun Posté(e) 9 septembre 2005 Share Posté(e) 9 septembre 2005 'lu, Je te recommande de télécharger le code source du LuaPlayer (par Shine) sur ps2dev.org. Tu y trouveras un fichier "graphics.c" qui contient tout un tas de fonctions pour afficer des graphs très simplement, dont une qui prend en charge le format PNG (libpng requise)... Exemple : Image * png;InitGraphics();png = LoadImage("hello.png");BlitImageToScreen(0, 0, png->imageWidth, png->imageHeight, png, 0, 0);FlipScreen(); Lien vers le commentaire Partager sur d'autres sites More sharing options...
TheNetWarrior Posté(e) 9 septembre 2005 Share Posté(e) 9 septembre 2005 salut, merci, enfaite ca j'avait deja tester mais je ne sais pas comment installer une librairie et ouis je commence ...je comence desolé pour mes questions debile merci Lien vers le commentaire Partager sur d'autres sites More sharing options...
sasuke2911 Posté(e) 9 septembre 2005 Share Posté(e) 9 septembre 2005 hop dans ton shell tu tape svn checkout svn://svn.pspdev.org/psp/trunk/zlib svn checkout svn://svn.pspdev.org/psp/trunk/libpng cd zlib make make install cd libpng make make install voila libpng pour psp Lien vers le commentaire Partager sur d'autres sites More sharing options...
TheNetWarrior Posté(e) 9 septembre 2005 Share Posté(e) 9 septembre 2005 (modifié) merci je vait test merci alors je vous explique je suis avec pspide donc je telecharge la lib pour pc et je prend le makefile de shine mais le probleme c'est que quand je fait make il me dit qu'il y a pas de makefile..?? PS: mon makefile PSPSDK=$(shell psp-config --pspsdk-path)PSPDIR=$(shell psp-config --psp-prefix)TARGET_LIB = libpng.aOBJS = png.o pngerror.o pngget.o pngmem.o pngpread.o \ pngread.o pngrio.o pngrtran.o pngrutil.o pngset.o \ pngtrans.o pngwio.o pngwrite.o pngwtran.o pngwutil.oCFLAGS = -O2 -G0include $(PSPSDK)/lib/build.makinstall: $(TARGET_LIB) @echo "Installing libpng into $(PSPDIR)" @mkdir -p $(PSPDIR)/include $(PSPDIR)/lib @cp png.h pngconf.h $(PSPDIR)/include @cp libpng.a $(PSPDIR)/lib @echo "Done" sinan persone ne peut filer le libpng.a hien en megaupload merci bon finalement c'est bon j'ai reusit a installer la lib c'etait le makefile qui etait bizare Modifié 9 septembre 2005 par TheNetWarrior Lien vers le commentaire Partager sur d'autres sites More sharing options...
k-soul Posté(e) 5 octobre 2005 Share Posté(e) 5 octobre 2005 Salut,alors... persone pour nous donner un bout de code fonctionnel avec pspide sans inclure pg.h du hello world de nem? merci 492252[/snapback] Vous en êtes ou dans ce topic, car ca m'interresse, j'aimerai bien pouvoir afficher une image avec le pspsd, tout en sachant que j'utilise pspide 1.0 merci d'avance pour vos reponse Lien vers le commentaire Partager sur d'autres sites More sharing options...
Manu-R Posté(e) 6 octobre 2005 Share Posté(e) 6 octobre 2005 Exemple pour afficher une image en plein écran: Crée votre image.bmp en 480/272 Pixels Convertissez la en image.c avec le soft Match-one PSP Converter Sous DOS : m1pspc image.bmp image.c Le truc pour que l’image soit correcte sur la PSP c’est de la mettre en 32bit Donc il faut une petite routine sur la PSP pour la mettre en 32bit autrement l’image ne garde pas les bonnes couleurs Comme je suis gentil la routine est présente dans le code :lol: main.c #include <pspkernel.h> #include "image.c" /* Define the module info section */ PSP_MODULE_INFO("PAINTIMAGE", 0, 1, 1); /* Define the main thread's attribute value (optional) */ PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU); /* Exit callback */ int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0; } /* Callback thread */ void CallbackThread(void *arg) { int cbid; cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid); sceKernelSleepThreadCB(); } /* Sets up the callback thread and returns its thread id */ int SetupCallbacks(void) { int thid = 0; thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); } return thid; } // Routine de conversion de l'image de 16bit en 32bit unsigned int pixel_16to32(unsigned int sourceColor) { unsigned int destColor; int r, g, b; b = (sourceColor&0x7C00)>>10 ; g = (sourceColor&0x03E0)>>5 ; r = (sourceColor&0x001F) ; destColor = ((b&0x1F)<<19)|((g&0x1F)<<11)|((r&0x1F)<<3) ; return destColor; } int main(void) { int x, y; u32* vram = (u32*) (0x40000000 | 0x04000000); SetupCallbacks(); // init graphics sceDisplaySetMode(0, 480, 272); sceDisplaySetFrameBuf((void *) vram, 512, 3, 1); // Affichage de l'image for (y = 0; y < 272; y++) { for (x = 0; x < 480; x++) { vram[x + y * 512] = pixel_16to32(image[x + y*480]); } } sceKernelSleepThread(); return 0; } Voilà, vous copiez le main.c, le background.c et le makefile dans le même dossier et vous compilez PSP_Image_plein_ecran.rar Lien vers le commentaire Partager sur d'autres sites More sharing options...
k-soul Posté(e) 6 octobre 2005 Share Posté(e) 6 octobre 2005 T'assures grave ! je vais me matter ca tout de suite, le compiler, tester etc... franchement je vois que tu as l'air de maitriser ! Rest dans les parages je risque d'avoir besoin de toi ! Merci bcp encore Lien vers le commentaire Partager sur d'autres sites More sharing options...
ducseb Posté(e) 6 octobre 2005 Auteur Share Posté(e) 6 octobre 2005 Super c'est cool ca marche bien, ca compil bien (pour une fois !! ) Lien vers le commentaire Partager sur d'autres sites More sharing options...
k-soul Posté(e) 6 octobre 2005 Share Posté(e) 6 octobre 2005 Ouai c vrai que ca marche bien pour une fois lol c toi qui l'as ecrit ? pke bien joué mdr Sinon est ce que tu pourrait nous faire un petit cours rapide sur la vram et les 2 fonctions display que tu as utilisé ? pkoi 512 etc... comment je fais si je vux l'afficher en 300*170 par exemple... ? Merci d'avance, si tu veux pas le faire c pas grave j'essai de comprendre en parallele ! merci d'avance et excuse mes questions de debutant ! Lien vers le commentaire Partager sur d'autres sites More sharing options...
Manu-R Posté(e) 6 octobre 2005 Share Posté(e) 6 octobre 2005 (modifié) Nop c pas moi qui l’ai écrit ce code J’ai trouvé la fonction pour afficher l’image et pour la convertir en 16/32bit sur le forum de ps2dev Je débute en C et je suis comme vous à chercher comment ça fonctionne… mais moi je trouve lol Pour afficher une image en 300/170 change la code par : for (y = 0; y < 170; y++) { for (x = 0; x < 300; x++) { vram[x + y * 512] = pixel_16to32(image[x + y*300]); } } L’image s’affichera en haut à gauche Pour la changer de place je n’ai pas encore trouvé comment faire Parce que si tu change par : for (y = 100; y < 170; y++) { for (x = 50; x < 300; x++) { vram[x + y * 512] = pixel_16to32(image[x + y*300]); } } L’image est bien a 100 du haut et à 50 du coté gauche mais il y a un bug dans l’affichage Pour tes autres questions je ne suis pas encore assez compétent pour te répondre… mais ça va venir Modifié 6 octobre 2005 par Manu-R Lien vers le commentaire Partager sur d'autres sites More sharing options...
TheTool Posté(e) 6 octobre 2005 Share Posté(e) 6 octobre 2005 Lo for (y = 100; y < 170; y++) { for (x = 50; x < 300; x++) { vram[x + y * 512] = pixel_16to32(image[x + y*300]); } } Essaye plutot : for (y = 100; y < 270; y++) { for (x = 50; x < 350; x++) { vram[x + y * 512] = pixel_16to32(image[x + y*300]); } } ++TheTool Lien vers le commentaire Partager sur d'autres sites More sharing options...
Manu-R Posté(e) 6 octobre 2005 Share Posté(e) 6 octobre 2005 Ouep Déjà essayé mais ça bug à l’affichage Lien vers le commentaire Partager sur d'autres sites More sharing options...
k-soul Posté(e) 7 octobre 2005 Share Posté(e) 7 octobre 2005 Bon j'arrive certe aussi a afficher l'image redimensionner a un certain endroit dans l'ecran mais par contre, l'image est effectiment toute brouillé... je sais pas si ca vient du fait que l'image est en 480*272 et que qd on l'affiche en plus petit ca merde !??? Lien vers le commentaire Partager sur d'autres sites More sharing options...
seb117 Posté(e) 29 décembre 2005 Share Posté(e) 29 décembre 2005 (modifié) Dsl de remonter un post d'il y a 2 mois, mais je galere comme un Lama à faire fonctionner --> Match-one PSP Converter Alors si kelkun pouvais m'eclairer SVP! ps : Si kelkun pouvais me refiler l'EBOOT de "80Y" car le lien est dead-->>>ici>> merci bcp! <---[resolu!!] thx;) Modifié 30 décembre 2005 par seb117 Lien vers le commentaire Partager sur d'autres sites More sharing options...
seb117 Posté(e) 29 décembre 2005 Share Posté(e) 29 décembre 2005 (modifié) personnes pour repondre?!? Up --> je l'utilise sous le Cmd avec les bonnes commandes, une image en 24 bit de taille 480/272 en .bmp, mais il me dit tjr "FILE ERROR"!! Aurais-je fais une gaffe dans ma conversion?!? Modifié 30 décembre 2005 par seb117 Lien vers le commentaire Partager sur d'autres sites More sharing options...
FagEmul Posté(e) 20 août 2006 Share Posté(e) 20 août 2006 for (y = 0; y < 170; y++) { for (x = 0; x < 300; x++) { vram[x + y * 512] = pixel_16to32(image[x + y*300]); } } devient for (y = 0; y < 170; y++) { for (x = 0; x < 300; x++) { vram[x + y * 512] = pixel_16to32(image[(50+x) + (100+(y*300))]); } } Lien vers le commentaire Partager sur d'autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant