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 :
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.
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 !"); } }
Et en fait j'aimerais juste sauvegarder mes images au fur et à mesure
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...)
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
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 :
Mais j'avais plus rien
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;
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;
Partager