Program: gdcm
Module: $RCSfile: gdcmFile.cxx,v $
Language: C++
- Date: $Date: 2007/08/22 16:14:04 $
- Version: $Revision: 1.334 $
+ Date: $Date: 2007/10/23 15:52:33 $
+ Version: $Revision: 1.341 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
}
}
-
-
/**
* \brief gets the info from 0018,1164 : ImagerPixelSpacing
* then 0028,0030 : Pixel Spacing
{
return true;
}
+
+ // MONOCHROME + [Enhanced CT Image Storage] actually have Palettes
+ std::string sopClassUid = GetEntryString( 0x0008, 0x0016 );
+ if (Util::DicomStringEqual( sopClassUid, "1.2.840.10008.5.1.4.1.1.2.1"))
+ {
+ return true;
+ }
if ( PhotometricInterp == GDCM_UNFOUND )
{
gdcmDebugMacro( "Not found : Palette color (0028,0004)");
*/
bool File::IsYBRFull()
{
- std::string PhotometricInterp = GetEntryString( 0x0028, 0x0004 );
+ std::string PhotometricInterp = GetEntryString( 0x0028, 0x0004 );
if ( PhotometricInterp == "YBR_FULL" )
{
return true;
return false;
}
// Red Palette Color Lookup Table Data
- if ( !GetDocEntry(0x0028,0x1201) )
+ bool segmented;
+ segmented = GetDocEntry(0x0028,0x1221) &&
+ GetDocEntry(0x0028,0x1222) &&
+ GetDocEntry(0x0028,0x1223);
+ if( segmented ) return true;
+
+ if( !GetDocEntry(0x0028,0x1201) )
{
return false;
}
*/
bool File::Write(std::string fileName, FileType writetype)
{
+ gdcmDebugMacro(" File::Write ");
std::ofstream *fp = new std::ofstream(fileName.c_str(),
std::ios::out | std::ios::binary);
if (*fp == NULL)
}
/// \todo FIXME : Derma?.dcm does not have it...let's remove it ?!? JPRx
- if( writetype != JPEG )
+ if( writetype != JPEG && writetype != JPEG2000)
{
int i_lgPix = GetEntryLength(GrPixel, NumPixel);
- if (i_lgPix != -2)
+ if (i_lgPix != -2) /// \todo wtf "-2" ?!?
{
// no (GrPixel, NumPixel) element
std::string s_lgPix = Util::Format("%d", i_lgPix+12);
InsertEntryString(s_lgPix,GrPixel, 0x0000, "UL");
}
}
- Document::WriteContent(fp, writetype);
+ Document::WriteContent(fp, writetype,false,false);
fp->close();
delete fp;
// Private
/**
* \brief Parse pixel data from disk of [multi-]fragment RLE encoding.
- * Compute the RLE extra information and store it in \ref RLEInfo
+ * Compute the RLE extra information and store it in RLEInfo
* for later pixel retrieval usage.
*/
void File::ComputeRLEInfo()
/**
* \brief Parse pixel data from disk of [multi-]fragment Jpeg encoding.
* Compute the jpeg extra information (fragment[s] offset[s] and
- * length) and store it[them] in \ref JPEGInfo for later pixel
+ * length) and store it[them] in JPEGInfo for later pixel
* retrieval usage.
*/
void File::ComputeJPEGFragmentInfo()
}
/**
- * \brief Assuming the internal file pointer \ref Document::Fp
+ * \brief Assuming the internal file pointer Document::Fp
* is placed at the beginning of a tag, check whether this
* tag is (TestGroup, TestElem).
- * \warning On success the internal file pointer \ref Document::Fp
+ * \warning On success the internal file pointer Document::Fp
* is modified to point after the tag.
* On failure (i.e. when the tag wasn't the expected tag
* (TestGroup, TestElem) the internal file pointer
- * \ref Document::Fp is restored to its original position.
+ * Document::Fp is restored to its original position.
* @param testGroup The expected group of the tag.
* @param testElem The expected Element of the tag.
* @return True on success, false otherwise.
}
/**
- * \brief Assuming the internal file pointer \ref Document::Fp
+ * \brief Assuming the internal file pointer Document::Fp
* is placed at the beginning of a tag (TestGroup, TestElement),
* read the length associated to the Tag.
- * \warning On success the internal file pointer \ref Document::Fp
+ * \warning On success the internal file pointer Document::Fp
* is modified to point after the tag and its length.
* On failure (i.e. when the tag wasn't the expected tag
* (TestGroup, TestElement) the internal file pointer
- * \ref Document::Fp is restored to its original position.
+ * Document::Fp is restored to its original position.
* @param testGroup The expected Group of the tag.
* @param testElem The expected Element of the tag.
* @return On success returns the length associated to the tag. On failure