begin process at 2012 05 29 18:42:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb de pointeur...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb de pointeur...

samedi 18 janvier 2003 à 15:22:39 | pb de pointeur...

didrocks

Voici une de mes fonctions:

void Main::LoadBmp(geBitmap *Bmp, char *NomFichier)
{
geVFile *File;
int temp;
/*
if (m_Height==800)
*NomFichier ="E" && *NomFichier;
else
*NomFichier="S" && *NomFichier;
*/
File = geVFile_OpenNewSystem(NULL, GE_VFILE_TYPE_DOS, NomFichier, NULL, GE_VFILE_OPEN_READONLY);

}

Ex d'utilisation LoadBmp(Bitmap1,"coucou.bmp")
le pb vient de ce que j'ai mis entre /* */
J'aimerai, (suivant la résolution comme tu peux le voir) que si on est en 800*600, le fichier ouvert soir Ecoucou.bmp ou sinon Scoucou.bmp. Mais je n'arrive pas à le faire! qqn peut me renseigner sur l'utilisation des pointeurs dans ce cas? (la fonction feVFile_Op..... attends un pointeur en 3ème paramètre)

Merci par avance!
dimanche 19 janvier 2003 à 00:04:25 | Re : pb de pointeur...

trinitacs





-------------------------------
Réponse au message :
Le problème vient de l'utilisation de l'opérateur binaire &&. C'est le Et. Je pense que tu voulais rajouter "E" ou "S" devant le fichier. On ne procède pas de cette manière car l'opérateur && est utilisée pour les conditions multiples. Pour rajouter qqch à une chaîne tu dois utiliser la fonction
str3 = strcat( str1, str2 );
où str2 sera rajoutée à str1 et le résultat sera stocké dans str3. Sache que str1 est inchangé. La fonction strcat est dans le fichier string.h et tu pourras y trouver ces semblabe comme strcpy etc ...

Si je peux te donner une conseil. A t'a place je n'utiliserai pas 2 images pour 2 résolutions possible. Mais je créerais plutot une fonction qui ferait une homotétie de l'image. Ça te permetttera de rendre ton prog plus extensible et facil à entretenir.
-------------------------------

> Voici une de mes fonctions:
>
> void Main::LoadBmp(geBitmap *Bmp, char *NomFichier)
> {
> geVFile *File;
> int temp;
> /*
> if (m_Height==800)
> *NomFichier ="E" && *NomFichier;
> else
> *NomFichier="S" && *NomFichier;
> */
> File = geVFile_OpenNewSystem(NULL, GE_VFILE_TYPE_DOS, NomFichier, NULL, GE_VFILE_OPEN_READONLY);
>
> }
>
> Ex d'utilisation LoadBmp(Bitmap1,"coucou.bmp")
> le pb vient de ce que j'ai mis entre /* */
> J'aimerai, (suivant la résolution comme tu peux le voir) que si on est en 800*600, le fichier ouvert soir Ecoucou.bmp ou sinon Scoucou.bmp. Mais je n'arrive pas à le faire! qqn peut me renseigner sur l'utilisation des pointeurs dans ce cas? (la fonction feVFile_Op..... attends un pointeur en 3ème paramètre)
>
> Merci par avance!
dimanche 19 janvier 2003 à 10:48:59 | Re : pb de pointeur...

vieuxLion

exact
de plus, les * devant NomFichier sont suspectes
voici un exemple simple de concaténation :

#include <iostream>
using namespace std;

int main()
{
char nomFichier[]="test.txt";
char resultat[25]="E";//init
strcat(resultat, nomFichier);//concat
cout << resultat << endl;//affiche "Etest.txt"
return 0;
}



-------------------------------
Réponse au message :
-------------------------------

>
>
>
>
> -------------------------------
> Réponse au message :
> Le problème vient de l'utilisation de l'opérateur binaire &&. C'est le Et. Je pense que tu voulais rajouter "E" ou "S" devant le fichier. On ne procède pas de cette manière car l'opérateur && est utilisée pour les conditions multiples. Pour rajouter qqch à une chaîne tu dois utiliser la fonction
> str3 = strcat( str1, str2 );
> où str2 sera rajoutée à str1 et le résultat sera stocké dans str3. Sache que str1 est inchangé. La fonction strcat est dans le fichier string.h et tu pourras y trouver ces semblabe comme strcpy etc ...
>
> Si je peux te donner une conseil. A t'a place je n'utiliserai pas 2 images pour 2 résolutions possible. Mais je créerais plutot une fonction qui ferait une homotétie de l'image. Ça te permetttera de rendre ton prog plus extensible et facil à entretenir.
> -------------------------------
>
> > Voici une de mes fonctions:
> >
> > void Main::LoadBmp(geBitmap *Bmp, char *NomFichier)
> > {
> > geVFile *File;
> > int temp;
> > /*
> > if (m_Height==800)
> > *NomFichier ="E" && *NomFichier;
> > else
> > *NomFichier="S" && *NomFichier;
> > */
> > File = geVFile_OpenNewSystem(NULL, GE_VFILE_TYPE_DOS, NomFichier, NULL, GE_VFILE_OPEN_READONLY);
> >
> > }
> >
> > Ex d'utilisation LoadBmp(Bitmap1,"coucou.bmp")
> > le pb vient de ce que j'ai mis entre /* */
> > J'aimerai, (suivant la résolution comme tu peux le voir) que si on est en 800*600, le fichier ouvert soir Ecoucou.bmp ou sinon Scoucou.bmp. Mais je n'arrive pas à le faire! qqn peut me renseigner sur l'utilisation des pointeurs dans ce cas? (la fonction feVFile_Op..... attends un pointeur en 3ème paramètre)
> >
> > Merci par avance!
>
dimanche 19 janvier 2003 à 12:39:33 | Re : pb de pointeur...

trinitacs





-------------------------------
Réponse au message :
Je répond au mail que tu m'a envoyé sur le forum pour que ça serve à d'autres par hasard.

Une homotétie c'est un agrandissement ou l'inverse. Un peu comme un zoom.

On va partir du principe que tu as une structure ou une classe bitmap. Celle ci stocke l'image sous forme d'un tableau. Un tableau de char si il y a 256 couleur oude int en 24 bit (rbg) et il reste un octect pour l'alpha. Bon bref on a un tableau.

Si tu veux l'agrandir de 2 tu va devoir créer une deuxième variable bitmap mais avec un tableau deux fois plus grand. Donc tu recopiera chaque pixel (chaque élément du tableau) deux fois dans le nouveau bitmap.

Si tu veux le réduire tu fais la même chose en sens inverse. Tu recopieras un pixel sur deux.

Ici j'ai pris des cas simples ( * 2 ou / 2 ) mais tu peus aussi le faire avec un facteur de 1.12345 si tu le veux.

Donc en gros tu fais un sorte de règle de 3 pour savoir quel pixel tu va recopier sur le bitmap de destination.

J'espère avoir été clair, et si tu veux des précision ou un exemple de code source demande le moi ;)
-------------------------------

> exact
> de plus, les * devant NomFichier sont suspectes
> voici un exemple simple de concaténation :
>
> #include <iostream>
> using namespace std;
>
> int main()
> {
> char nomFichier[]="test.txt";
> char resultat[25]="E";//init
> strcat(resultat, nomFichier);//concat
> cout << resultat << endl;//affiche "Etest.txt"
> return 0;
> }
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > Le problème vient de l'utilisation de l'opérateur binaire &&. C'est le Et. Je pense que tu voulais rajouter "E" ou "S" devant le fichier. On ne procède pas de cette manière car l'opérateur && est utilisée pour les conditions multiples. Pour rajouter qqch à une chaîne tu dois utiliser la fonction
> > str3 = strcat( str1, str2 );
> > où str2 sera rajoutée à str1 et le résultat sera stocké dans str3. Sache que str1 est inchangé. La fonction strcat est dans le fichier string.h et tu pourras y trouver ces semblabe comme strcpy etc ...
> >
> > Si je peux te donner une conseil. A t'a place je n'utiliserai pas 2 images pour 2 résolutions possible. Mais je créerais plutot une fonction qui ferait une homotétie de l'image. Ça te permetttera de rendre ton prog plus extensible et facil à entretenir.
> > -------------------------------
> >
> > > Voici une de mes fonctions:
> > >
> > > void Main::LoadBmp(geBitmap *Bmp, char *NomFichier)
> > > {
> > > geVFile *File;
> > > int temp;
> > > /*
> > > if (m_Height==800)
> > > *NomFichier ="E" && *NomFichier;
> > > else
> > > *NomFichier="S" && *NomFichier;
> > > */
> > > File = geVFile_OpenNewSystem(NULL, GE_VFILE_TYPE_DOS, NomFichier, NULL, GE_VFILE_OPEN_READONLY);
> > >
> > > }
> > >
> > > Ex d'utilisation LoadBmp(Bitmap1,"coucou.bmp")
> > > le pb vient de ce que j'ai mis entre /* */
> > > J'aimerai, (suivant la résolution comme tu peux le voir) que si on est en 800*600, le fichier ouvert soir Ecoucou.bmp ou sinon Scoucou.bmp. Mais je n'arrive pas à le faire! qqn peut me renseigner sur l'utilisation des pointeurs dans ce cas? (la fonction feVFile_Op..... attends un pointeur en 3ème paramètre)
> > >
> > > Merci par avance!
> >
>


Cette discussion est classée dans : pb, bmp, pointeur, nomfichier, loadbmp


Répondre à ce message

Sujets en rapport avec ce message

Pb affichage BMP en VC++ 6.0 [ par gastoudou ] Bonjour à tous,J'ai un problème d'affichage avec mes BMP. Elles sont complètement explosées quand je les affiche à l'écran...Quelqu'un peut-il me dire Pb Class et pointeur ... [ par payen ] salut a tous,j'ai un petit probleme en C++: j'ai definit une class CImage, avec entre autre, un pointeur vers une variable de type char (char *nom_ima PB:[TURBO C++]charger une image (bmp ou jpg) et l'afficher [ par kobee12 ] depuis quelque temps j'essaie de trouver un programme qui me permettrait d'afficher une ou plusieurs images en utilisant GRAPHICS.H avec TURBO C++.Seu Pb de pointeur [ par Jack94 ] Salut a tous, Voila j'ai un pb je defini un tableau et tout et j'ai definie deux variable int a et b qui on pour valeur respectif les valeur ranger d Modification de fichier BMP [ par titio ] Bonjour,Je souhaite afficher des images bmp, tout en ayant la possibilité de modifier ce fichier. Pour cela, je le charge en memoire, et souhaite donc [API | C++] Affichage pointeur BMP [ par keenrather ] Bonjour c'est encore moi,Cette fois j'ai un problème avec l'affichage d'une image BMP dans une fenêtre. Je suis toujours en API Windows sous Visual C+ Pb de pointeur [ par cz1702 ] Bonjour à tous, j'ai fait une classe pour l'utilisation des sockets qui fonctionne bien pour une utilisation, mais quand que je fait appelle plusieurs pb de pointeur [ par elisabeth_nov ] Bonsoir,mon souci c'est que j'ai créé un programme qui permet de crypter un fichier, ce que je ne parvien pas à faire c'est à afficher le fichier que pb récupération chaine [ par phenX ] quand je fait:   strncpy(szBuffer,nomfichier + (strlen(nomfichier) - 4), 4);   //récupérer l'extention while(szBuffer != ".xls")  {instructions} il n .bmp en .avi sur linux [ par lingus ] voila j ai un pb > je dois passer un ta d images .bmp pour en faire une petite video.le pb c est ke je suis sur linux et ke je ne connais pas de soft


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales