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;