<br><font size=2 face="sans-serif">Mathieu,</font>
<br>
<br><font size=2 face="sans-serif">ca ca fonctionne chez moi... </font>
<br><font size=2 face="sans-serif">La boucle for est un peu tricky, mais ca fonctionne car on passe de 16 a 8 et pas de 8 a 16 bits. Si tel etait le cas, il faudrait faire une boucle decroissante de rescaleSize a 0 !!! :p</font>
<br>
<br><font size=2 face="sans-serif">int TestRescaleDicom(char *input)</font>
<br><font size=2 face="sans-serif">{</font>
<br><font size=2 face="sans-serif">   gdcm::File *f1 = new gdcm::File( input );</font>
<br><font size=2 face="sans-serif">   gdcm::Header *header = f1->GetHeader();</font>
<br>
<br><font size=2 face="sans-serif">   int dataSize    = f1->GetImageDataSize();</font>
<br><font size=2 face="sans-serif">   int rescaleSize = dataSize / 2;</font>
<br>
<br><font size=2 face="sans-serif">   // Since we know the image is 16bits:</font>
<br><font size=2 face="sans-serif">   uint16_t* imageData = (uint16_t*)f1->GetImageData();</font>
<br>
<br><font size=2 face="sans-serif">   header->ReplaceOrCreateByNumber( "8", 0x0028, 0x0100);// BitsAllocated</font>
<br><font size=2 face="sans-serif">   header->ReplaceOrCreateByNumber( "8", 0x0028, 0x0101);// BitsStored</font>
<br><font size=2 face="sans-serif">   header->ReplaceOrCreateByNumber( "7", 0x0028, 0x0102);// HighBit</font>
<br><font size=2 face="sans-serif">   header->SetImageDataSize(rescaleSize);</font>
<br>
<br><font size=2 face="sans-serif">   // modify grayvalues: We assume the value were from 0 to 4*uint8_t max</font>
<br><font size=2 face="sans-serif">   // and convert from 16 bits to 8 bits...</font>
<br><font size=2 face="sans-serif">   uint8_t* tmp = (uint8_t *)imageData;</font>
<br><font size=2 face="sans-serif">   for(int i=0; i<rescaleSize; i++) tmp[i] = imageData[i]/4;</font>
<br>
<br><font size=2 face="sans-serif">   // write the image to a new file</font>
<br><font size=2 face="sans-serif">   f1->WriteDcmExplVR( "/tmp/output.dcm" );</font>
<br>
<br><font size=2 face="sans-serif">   // free memory</font>
<br><font size=2 face="sans-serif">   delete f1;</font>
<br>
<br><font size=2 face="sans-serif">   return 0;</font>
<br><font size=2 face="sans-serif">}</font>