* file (see SetFileName, SetDcmTag and Write)
* Opens (in read only and when possible) an existing file and checks
* for DICOM compliance. Returns NULL on failure.
- * \Note the in-memory representation of all available tags found in
+ * \note the in-memory representation of all available tags found in
* the DICOM header is post-poned to first header information access.
* This avoid a double parsing of public part of the header when
* one sets an a posteriori shadow dictionary (efficiency can be
* seen as a side effect).
- *
* @param header file to be opened for reading datas
- *
* @return
*/
* file (see SetFileName, SetDcmTag and Write)
* Opens (in read only and when possible) an existing file and checks
* for DICOM compliance. Returns NULL on failure.
- * \Note the in-memory representation of all available tags found in
+ * \note the in-memory representation of all available tags found in
* the DICOM header is post-poned to first header information access.
* This avoid a double parsing of public part of the header when
* one sets an a posteriori shadow dictionary (efficiency can be
* seen as a side effect).
* @param filename file to be opened for parsing
- * @return
*/
gdcmFile::gdcmFile(std::string & filename) {
Header=new gdcmHeader(filename.c_str());
SetPixelDataSizeFromHeader();
}
-gdcmFile::gdcmFile(const char * filename) {
+/**
+ * \ingroup gdcmFile
+ * \brief Constructor dedicated to writing a new DICOMV3 part10 compliant
+ * file (see SetFileName, SetDcmTag and Write)
+ * Opens (in read only and when possible) an existing file and checks
+ * for DICOM compliance. Returns NULL on failure.
+ * \note the in-memory representation of all available tags found in
+ * the DICOM header is post-poned to first header information access.
+ * This avoid a double parsing of public part of the header when
+ * one sets an a posteriori shadow dictionary (efficiency can be
+ * seen as a side effect).
+ * @param filename file to be opened for parsing
+ */
+ gdcmFile::gdcmFile(const char * filename) {
Header=new gdcmHeader(filename);
SelfHeader=true;
PixelRead=-1; // no ImageData read yet.
/**
* \ingroup gdcmFile
* \brief Returns the size (in bytes) of required memory to hold
- * \ the pixel data represented in this file, when user DOESN'T want
- * \ to get RGB pixels image when it's stored as a PALETTE COLOR image
- * \ - the (vtk) user is supposed to know how deal with LUTs -
+ * the pixel data represented in this file, when user DOESN'T want
+ * to get RGB pixels image when it's stored as a PALETTE COLOR image
+ * -the (vtk) user is supposed to know how deal with LUTs-
* \warning to be used with GetImagePixelsRaw()
* @return The size of pixel data in bytes.
*/
* Transforms 3 planes R, G, B into a single RGB Plane
* Transforms single Grey plane + 3 Palettes into a RGB Plane
* @return Pointer to newly allocated pixel data.
- * \ NULL if alloc fails
+ * NULL if alloc fails
*/
void * gdcmFile::GetImageData (void) {
PixelData = (void *) malloc(lgrTotale);
/**
* \ingroup gdcmFile
- * \brief TODO JPR
- * \warning doit-etre etre publique ?
- * TODO : y a-t-il un inconvenient à fusioner ces 2 fonctions
- *
- * @param inData
- * @param ExpectedSize
+ * \brief performs a shadow copy (not a deep copy) of the user given
+ * pixel area.
+ * 'image' Pixels are presented as C-like 2D arrays : line per line.
+ * 'volume'Pixels are presented as C-like 3D arrays : lane per plane
+ * \warning user is kindly requested NOT TO 'free' the Pixel area
+ * @param inData user supplied pixel area
+ * @param ExpectedSize total image size, in Bytes
*
* @return boolean
*/
* \ingroup gdcmFile
* \brief Writes on disk A SINGLE Dicom file
* NO test is performed on processor "Endiannity".
- * Ca sera à l'utilisateur d'appeler son Reader correctement
- * (Equivalent a IdImaWriteRawFile)
- *
+ * It's up to the user to call his Reader properly
* @param fileName name of the file to be created
* (any already existing file is over written)
* @return false if write fails
/**
* \ingroup gdcmFile
- * \brief Writes on disk A SINGLE Dicom file
+ * \brief Writes on disk A SINGLE Dicom file,
+ * using the Implicit Value Representation convention
* NO test is performed on processor "Endiannity".
- *
* @param fileName name of the file to be created
* (any already existing file is overwritten)
* @return false if write fails
/**
* \ingroup gdcmFile
- * \brief
- * @param fileName name of the file to be created
+ * \brief Writes on disk A SINGLE Dicom file,
+ * using the Implicit Value Representation convention
+ * NO test is performed on processor "Endiannity". * @param fileName name of the file to be created
* (any already existing file is overwritten)
* @return false if write fails
*/
/**
* \ingroup gdcmFile
- * \brief
- * @param fileName name of the file to be created
+* \brief Writes on disk A SINGLE Dicom file,
+ * using the Explicit Value Representation convention
+ * NO test is performed on processor "Endiannity". * @param fileName name of the file to be created
* (any already existing file is overwritten)
* @return false if write fails
*/
/**
* \ingroup gdcmFile
- * \brief Ecrit au format ACR-NEMA sur disque l'entete et les pixels
+ * \brief Writes on disk A SINGLE Dicom file,
+ * using the ACR-NEMA convention
+ * NO test is performed on processor "Endiannity".
* (a l'attention des logiciels cliniques
* qui ne prennent en entrée QUE des images ACR ...
* \warning if a DICOM_V3 header is supplied,
* groups < 0x0008 and shadow groups are ignored)
* \warning NO TEST is performed on processor "Endiannity".
- * Ca fonctionnera correctement (?) sur processeur Intel
- * (Equivalent a IdDcmWrite)
- *
* @param fileName name of the file to be created
* (any already existing file is overwritten)
* @return false if write fails
// Protected
/**
* \ingroup gdcmFile
- *
-* @param fileName name of the file to be created
+ * \brief NOT a end user inteded function
+ * (used by WriteDcmExplVR, WriteDcmImplVR, WriteAcr, etc)
+ * @param fileName name of the file to be created
* (any already existing file is overwritten)
- * @param type file type (ExplicitVR, ImplicitVR, ...)
+ * @param type file type (ExplicitVR, ImplicitVR, DICOMDIR, ...)
* @return false if write fails
*/
bool gdcmFile::WriteBase (std::string fileName, FileType type) {
FILE * fp1;
if (PixelRead==-1 && type != DICOMDIR) {
- std::cout << "U never Read the pixels; U cannot write the file"
- << std::endl;
+/* std::cout << "U never Read the pixels; U cannot write the file"
+ << std::endl;*/
return false;
}
p2=it.second;// iterator on the last synonym
PixelElement=p2->second; // H Table target column (2-nd col)
- PixelElement->SetPrintLevel(2);
- PixelElement->Print();
+ // PixelElement->SetPrintLevel(2);
+ // PixelElement->Print();
if (PixelRead==1)
PixelElement->SetLength(lgrTotaleRaw);
else if (PixelRead==0)
PixelElement->SetLength(lgrTotale);
- PixelElement->SetPrintLevel(2);
- PixelElement->Print();
+ //PixelElement->SetPrintLevel(2);
+ //PixelElement->Print();
Header->Write(fp1, type);