IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

It�rer un nom de fichier


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Par d�faut It�rer un nom de fichier
    Bonjour � tous, j'ai un petit soucis qui je pense sera vite r�solu.
    Je d�veloppe plus en java qu'en C/C++ donc je gal�re sur quelques choses qui devraient pas �tre si compliqu� que ca...

    Voici ma fonction :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    //--------------------------------------------------------------------------------------------------
    // StreamCBFunc
    //--------------------------------------------------------------------------------------------------
    void CVCAVISampleDlg::StreamCBFunc(J_tIMAGE_INFO * pAqImageInfo)
    {
    	/* */
    	//LPCTSTR lpszFile = _T("capture.tiff");
    	LPCWSTR lpszFile = L"capture.bmp";
     
    	//char buf[30];
    	//sprintf(buf,"%llu.tiff",pAqImageInfo->iTimeStamp);
    	//LPCTSTR sFileName = (LPCTSTR)buf;
    	//uint64_t time = pAqImageInfo->iTimeStamp;
    	//TRACE("Timestamp = %llu\n", pAqImageInfo->iTimeStamp);
     
    	J_tIMAGE_INFO tCnvImageInfo; // Image info structure
    	// Allocate the buffer to hold converted the image
    	if (J_Image_Malloc(pAqImageInfo, &tCnvImageInfo) != J_ST_SUCCESS) { TRACE("Foireux 1\n"); }
    	// Convert the raw image to image format
    	if (J_Image_FromRawToImage(pAqImageInfo, &tCnvImageInfo) != J_ST_SUCCESS) { TRACE("Foireux 2\n"); }
    	// Save the image to disk in TIFF format
    	if (J_Image_SaveFileEx(&tCnvImageInfo, lpszFile, J_FF_BMP ) != J_ST_SUCCESS) { TRACE("Foireux 3\n"); }
    	//J_Image_SaveFile(&tCnvImageInfo, lpszFile) // Avec directement le format .tiff dans le nom du fichier
    	//J_FF_TIFF : TIFF file format.
    	//J_FF_JPEG : JPEG file format.
    	//J_FF_BMP :  BMP file format. 
    	// Free up the image buffer
    	if (J_Image_Free(&tCnvImageInfo) != J_ST_SUCCESS) { TRACE("Foireux 4\n"); }
    	//free(buf);
     
    	//TRACE("Announced buffer = %lu\n", pAqImageInfo->iAnnouncedBuffers); // 10
    	//TRACE("Await Delivery = %lu\n", pAqImageInfo->iAwaitDelivery); // 0
    	//TRACE("Image Size = %lu\n", pAqImageInfo->iImageSize);  // 1 997 376
    	TRACE("Timestamp = %llu\n", pAqImageInfo->iTimeStamp);
     
        // We can choose to display the image too, but this will only slow down the AVI file creation
        if(m_hView && (pAqImageInfo->iAwaitDelivery < 2))
        {
            // Shows image
            J_Image_ShowImage(m_hView, pAqImageInfo);
        }else{
    		TRACE("Ca galere !");
    	}
     
    }
    Voil� j'ai un thread qui m'envoie un flux de donn�e J_tIMAGE_INFO * pAqImageInfo qui sont des donn�es qui repr�sentent une image.

    Et en fait j'aimerais juste sauvegarder mes images au fur et � mesure

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    J_tIMAGE_INFO tCnvImageInfo; // Image info structure
    // Allocate the buffer to hold converted the image
    if (J_Image_Malloc(pAqImageInfo, &tCnvImageInfo) != J_ST_SUCCESS) { TRACE("Foireux 1\n"); }
    // Convert the raw image to image format
    if (J_Image_FromRawToImage(pAqImageInfo, &tCnvImageInfo) != J_ST_SUCCESS) { TRACE("Foireux 2\n"); }
    // Save the image to disk in TIFF format
    if (J_Image_SaveFileEx(&tCnvImageInfo, lpszFile, J_FF_BMP ) != J_ST_SUCCESS) { TRACE("Foireux 3\n"); }
    //J_Image_SaveFile(&tCnvImageInfo, lpszFile) // Avec directement le format .tiff dans le nom du fichier
    Cette partie fonctionne j'ai bien � chaque fois mon image enregistr� (sauf que la �videmment je garde toujours le m�me nom donc je n'en ai qu'une...)

    Ce que j'aimerais c'est enregistr� mes images avec le timestamp qui leur correspond (qui est donn� par pAqImageInfo->iTimeStamp qui est un uint64_t)

    J'ai tent� �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    //char buf[30];
    //sprintf(buf,"%llu.tiff",pAqImageInfo->iTimeStamp);
    //LPCTSTR sFileName = (LPCTSTR)buf;
    Mais j'avais plus rien

    Donc voil� si quelqu'un pouvait me d�panner �a serait cool.

    Infos suppl�mentaires
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    J_STATUS_TYPE J_Image_SaveFile(J_tIMAGE_INFO * pBufferInfo, LPCTSTR pPath);
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    typedef struct _J_tIMAGE_INFO_TYPE 
    {
       uint32_t iPixelType;          ///< Pixel Format Type
       uint32_t iSizeX;              ///< Image width
       uint32_t iSizeY;              ///< Image height
       uint32_t iImageSize;          ///< Number of bytes for image
       uint8_t  *pImageBuffer;       ///< Buffer pointer
       uint64_t iTimeStamp;          ///< Timestamp
       uint32_t iMissingPackets;     ///< Number of missing packets
       uint32_t iAnnouncedBuffers;   ///< Number of announced buffers
       uint32_t iQueuedBuffers;      ///< Number of queued buffers
       uint32_t iOffsetX;            ///< Image offset x
       uint32_t iOffsetY;            ///< Image offset y
       uint32_t iAwaitDelivery;      ///< Number of frames awaiting delivery inside the driver
       uint32_t iBlockId;            ///< GigE Vision Stream Protocol Block-ID
    } J_tIMAGE_INFO;

  2. #2
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 295
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 295
    Billets dans le blog
    2
    Par d�faut
    Bonjour,

    C/C++ �a ne veut rien dire. Ou alors, dans le sens o� l'on dirait "je programme en C#/java". Ce sont 2 langages diff�rents.
    Et de fait, ton code c'est du C, pas du C++, tu n'es donc pas sur le bon sous-forum.

  3. #3
    Membre �prouv�
    Avatar de TheGzD
    Homme Profil pro
    Ing�nieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Ing�nieur/ Docteur en Informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par d�faut
    Si par hasard tu utilises les MFC ou ATL tu peux utiliser la classe CString et sa m�thode Format. Enfin �a vaut si ton probl�me r�side dans la concat�nation de chaine.

    Au passage tu devrais v�rifier les datas de ta structure d'image ... une valeur non sp�cifi�e (car parfois non demand�e dans ton getter, car tu n'as pas mis la bonne option) peut parfois jouer bien des tours.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    33
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Avril 2008
    Messages : 33
    Par d�faut
    Si par hasard tu utilises les MFC ou ATL tu peux utiliser la classe CString et sa m�thode Format. Enfin �a vaut si ton probl�me r�side dans la concat�nation de chaine.
    C'est exactement ce que je voulais merci

    Voici le code au final :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    CString buf;
    J_tIMAGE_INFO tCnvImageInfo; // Image info structure
     
    buf.Format(_T("%llu.bmp"), pAqImageInfo->iTimeStamp);
    LPCTSTR lpszFile  = (LPCTSTR)buf;

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Comment r�cup�rer le nom du fichier sans l'extension ?
    Par altahir007 dans le forum Langage
    R�ponses: 16
    Dernier message: 13/11/2009, 13h20
  2. R�cup�rer le nom du fichier spool correspondant � un job
    Par chtiot dans le forum API, COM et SDKs
    R�ponses: 3
    Dernier message: 23/02/2004, 20h28
  3. R�ponses: 2
    Dernier message: 29/01/2004, 11h05
  4. R�ponses: 4
    Dernier message: 10/10/2003, 18h04
  5. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    R�ponses: 2
    Dernier message: 18/07/2002, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo