X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=Example%2FWriteDicomAsJPEG.cxx;h=505677f5e55a14f5ce89180fc898670cfb5cd90c;hb=548629d72ad2d560c5684e66d34aa9f3e4e50927;hp=3b3acd576d2748d46416eaf0e2d1bb79685f06c1;hpb=71e4d3f94788734baf92e3fe161d4e6146c08fa8;p=gdcm.git diff --git a/Example/WriteDicomAsJPEG.cxx b/Example/WriteDicomAsJPEG.cxx index 3b3acd57..505677f5 100644 --- a/Example/WriteDicomAsJPEG.cxx +++ b/Example/WriteDicomAsJPEG.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: WriteDicomAsJPEG.cxx,v $ Language: C++ - Date: $Date: 2005/11/22 20:31:37 $ - Version: $Revision: 1.9 $ + Date: $Date: 2006/07/04 08:00:43 $ + Version: $Revision: 1.11 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -31,6 +31,10 @@ extern "C" { #include "gdcmjpeg/8/jerror.h" } +#if defined(__BORLANDC__) + #include // for memcpy +#endif + #include "gdcmJPEGFragment.h" #include #include @@ -232,6 +236,7 @@ bool InitializeJpeg(std::ostream *fp, int fragment_size, int image_width, int im */ if (sample_pixel == 3) { + assert( sample_pixel == 1 ); row_stride = image_width * 3;/* JSAMPLEs per row in image_buffer */ } else @@ -322,7 +327,15 @@ bool CreateOneFrame (std::ostream *fp, void *input_buffer, int fragment_size, static int i = 0; JpegPair &jp = v[i]; jp.second = end-beg; - std::cerr << "DIFF: " << i <<" -> " << end-beg << std::endl; + + if( ((end-beg) % 2) ) + { + fp->put( '\0' ); + jp.second += 1; + } + assert( !(jp.second % 2) ); + std::cerr << "DIFF: " << i <<" -> " << jp.second << std::endl; + ++i; //JpegPair &jp = v[0]; @@ -390,6 +403,7 @@ int main(int argc, char *argv[]) WriteDICOMItems(of, JpegFragmentSize); CreateOneFrame(of, pImageData, fragment_size, xsize, ysize, zsize, samplesPerPixel, quality, JpegFragmentSize); + assert( !(fragment_size % 2) ); pImageData += fragment_size; } CloseJpeg(of, JpegFragmentSize);