Bonjour,
J'ai codé une fonction qui doit enregistré une image sur DD..ça compile et y a pas de pb à l'éxecution mais lorsque j'ouvre l'image j'ai "aucun aperçu disponible"
voici le code:
Code c++ : 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 void CCamera::StreamCBFunc2(J_tIMAGE_INFO * pAqImageInfo) { FILE *f; std::cout <<"cam"<< index << " " << i << " " << std::endl; nbr_missing_packets+=pAqImageInfo->iMissingPackets; if (J_Image_Malloc(pAqImageInfo, &tCnvImageInfo) == J_ST_SUCCESS) { if (J_Image_FromRawToImage(pAqImageInfo, &tCnvImageInfo) == J_ST_SUCCESS) { std::ostringstream out; out << i++; std::string sFileName = filename + "\\photo" + out.str() + ".tiff"; f=fopen(sFileName.c_str(),"wb"); if(f!=NULL) { fwrite( &tCnvImageInfo.pImageBuffer,sizeof(uint8_t),sizeof(&tCnvImageInfo.pImageBuffer),f); fclose(f); } else TRACE("pas d'écriture!!\n"); if (J_Image_Free(&tCnvImageInfo) != J_ST_SUCCESS) {} } } }
En effet, l'image est stochée sous forme brute dans le buffer pImageBuffer de la structure pAqImageInfo et après je fais la conversion du format binaire au format image et le resultat est stocké ds le buffer pImageBuffer de la structure tCnvImageInfo.
voici la déclaration de ces structures:
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 J_tIMAGE_INFO tCnvImageInfo; J_tIMAGE_INFO *pAqImageInfo; et la définition de la structure est: typedef struct _J_tIMAGE_INFO { 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 } J_tIMAGE_INFO;
Merci d'avance!
Partager