int nb;
std::string str_nb;
- str_nb=Header->GetPubEntryByNumber(0x0028,0x0100);
+ str_nb=Header->GetEntryByNumber(0x0028,0x0100);
if (str_nb == GDCM_UNFOUND ) {
nb = 16;
} else {
lgrTotale = lgrTotaleRaw = Header->GetXSize() * Header->GetYSize()
* Header->GetZSize() * (nb/8)* Header->GetSamplesPerPixel();
std::string str_PhotometricInterpretation =
- Header->GetPubEntryByNumber(0x0028,0x0004);
+ Header->GetEntryByNumber(0x0028,0x0004);
/*if ( str_PhotometricInterpretation == "PALETTE COLOR " )*/
// pb when undealt Segmented Palette Color
// CreateOrReplaceIfExist ?
std::string spp = "3"; // Samples Per Pixel
- Header->SetPubEntryByNumber(spp,0x0028,0x0002);
+ Header->SetEntryByNumber(spp,0x0028,0x0002);
std::string rgb= "RGB "; // Photometric Interpretation
- Header->SetPubEntryByNumber(rgb,0x0028,0x0004);
+ Header->SetEntryByNumber(rgb,0x0028,0x0004);
std::string planConfig = "0"; // Planar Configuration
- Header->SetPubEntryByNumber(planConfig,0x0028,0x0006);
+ Header->SetEntryByNumber(planConfig,0x0028,0x0006);
} else {
// need to make RGB Pixels (?)
// Segmented xxx Palette Color are *more* than 65535 long ?!?
std::string rgb= "MONOCHROME1 "; // Photometric Interpretation
- Header->SetPubEntryByNumber(rgb,0x0028,0x0004);
+ Header->SetEntryByNumber(rgb,0x0028,0x0004);
}
// TODO : Drop Palette Color out of the Header?
return lgrTotale;
(void)ReadPixelData(destination);
// Number of Bits Allocated for storing a Pixel
- str_nb = Header->GetPubEntryByNumber(0x0028,0x0100);
+ str_nb = Header->GetEntryByNumber(0x0028,0x0100);
if (str_nb == GDCM_UNFOUND ) {
nb = 16;
} else {
nb = atoi(str_nb.c_str() );
}
// Number of Bits actually used
- str_nbu=Header->GetPubEntryByNumber(0x0028,0x0101);
+ str_nbu=Header->GetEntryByNumber(0x0028,0x0101);
if (str_nbu == GDCM_UNFOUND ) {
nbu = nb;
} else {
nbu = atoi(str_nbu.c_str() );
}
// High Bit Position
- str_highBit=Header->GetPubEntryByNumber(0x0028,0x0102);
+ str_highBit=Header->GetEntryByNumber(0x0028,0x0102);
if (str_highBit == GDCM_UNFOUND ) {
highBit = nb - 1;
} else {
// Pixel sign
// 0 = Unsigned
// 1 = Signed
- str_signe=Header->GetPubEntryByNumber(0x0028,0x0103);
+ str_signe=Header->GetEntryByNumber(0x0028,0x0103);
if (str_signe == GDCM_UNFOUND ) {
signe = 0; // default is unsigned
} else {
// -------------------
std::string str_PhotometricInterpretation =
- Header->GetPubEntryByNumber(0x0028,0x0004);
+ Header->GetEntryByNumber(0x0028,0x0004);
if ( (str_PhotometricInterpretation == "MONOCHROME1 ")
|| (str_PhotometricInterpretation == "MONOCHROME2 ") ) {
// CreateOrReplaceIfExist ?
std::string spp = "3"; // Samples Per Pixel
- Header->SetPubEntryByNumber(spp,0x0028,0x0002);
+ Header->SetEntryByNumber(spp,0x0028,0x0002);
std::string rgb="RGB "; // Photometric Interpretation
- Header->SetPubEntryByNumber(rgb,0x0028,0x0004);
+ Header->SetEntryByNumber(rgb,0x0028,0x0004);
std::string planConfig = "0"; // Planar Configuration
- Header->SetPubEntryByNumber(planConfig,0x0028,0x0006);
+ Header->SetEntryByNumber(planConfig,0x0028,0x0006);
// TODO : Drop Palette Color out of the Header?
return lgrTotale;
std::string rows, columns;
if ( Header->GetFileType() == ACR_LIBIDO){
- rows = Header->GetPubEntryByNumber(0x0028, 0x0010);
- columns = Header->GetPubEntryByNumber(0x0028, 0x0011);
- Header->SetPubEntryByNumber(columns, 0x0028, 0x0010);
- Header->SetPubEntryByNumber(rows , 0x0028, 0x0011);
+ rows = Header->GetEntryByNumber(0x0028, 0x0010);
+ columns = Header->GetEntryByNumber(0x0028, 0x0011);
+ Header->SetEntryByNumber(columns, 0x0028, 0x0010);
+ Header->SetEntryByNumber(rows , 0x0028, 0x0011);
}
// ----------------- End of Special Patch ----------------
// just after writting
if (Header->GetFileType() == ACR_LIBIDO){
- Header->SetPubEntryByNumber(rows , 0x0028, 0x0010);
- Header->SetPubEntryByNumber(columns, 0x0028, 0x0011);
+ Header->SetEntryByNumber(rows , 0x0028, 0x0010);
+ Header->SetEntryByNumber(columns, 0x0028, 0x0011);
}
// ----------------- End of Special Patch ----------------
fread(&b2,1,1,fp);
//Two steps is necessary to please VC++
*pdestination++ = ((b0 >> 4) << 8) + ((b0 & 0x0f) << 4) + (b1 & 0x0f);
- /* A */ /* B */ /* D */
+ /* A */ /* B */ /* D */
*pdestination++ = ((b2 & 0x0f) << 8) + ((b1 >> 4) << 4) + (b2 >> 4);
- /* F */ /* C */ /* E */
+ /* F */ /* C */ /* E */
// Troubles expected on Big-Endian processors ?
}
+
+ Header->CloseFile();
return(true);
}
Header->IsDeflatedExplicitVRLittleEndianTransferSyntax() ) {
size_t ItemRead = fread(destination, Header->GetPixelAreaLength(), 1, fp);
-
if ( ItemRead != 1 ) {
Header->CloseFile();
return false;
// ---------------------- Run Length Encoding
if (Header->IsRLELossLessTransferSyntax()) {
- bool res = (bool)gdcm_read_RLE_file (fp,destination);
- return res;
+ bool res = (bool)gdcm_read_RLE_file (fp,destination);
+ Header->CloseFile();
+ return res;
}
// --------------- SingleFrame/Multiframe JPEG Lossless/Lossy/2000
int nb;
- std::string str_nb=Header->GetPubEntryByNumber(0x0028,0x0100);
+ std::string str_nb=Header->GetEntryByNumber(0x0028,0x0100);
if (str_nb == GDCM_UNFOUND ) {
nb = 16;
} else {
int taille = Header->GetXSize() * Header->GetYSize()
* Header->GetSamplesPerPixel();
long fragmentBegining; // for ftell, fseek
-
+
bool jpg2000 = Header->IsJPEG2000();
bool jpgLossless = Header->IsJPEGLossless();
guint16 ItemTagGr,ItemTagEl;
int ln;
- // Position on begining of Jpeg Pixels
+ // Position on begining of Jpeg Pixels
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
}
// parsing fragments until Sequence Delim. Tag found
- while ( ( ItemTagGr == 0xfffe) && (ItemTagEl != 0xe0dd) ) {
+ while ( ( ItemTagGr == 0xfffe) && (ItemTagEl != 0xe0dd) ) {
// --- for each Fragment
fread(&ln,4,1,fp);