[vtkusers] Outputting a 2D ImageData into a JPEG/PNG...
    Jefferson Thomas 
    foramuyou at gmail.com
       
    Thu May 22 04:16:25 EDT 2008
    
    
  
Hi,
I want to create a JPEG or PNG image file out of a 2D ImageData structure.
I create my ImageData like this:
  data=vtkImageData::New();
  int size1=100, size2=100, size3=1;
  data->SetDimensions(size1,size2,1);
  data->SetSpacing(1.0, 1.0, 1.0);
  data->SetOrigin(0.0, 0.0, 0.0);
  data->SetScalarTypeToUnsignedChar();
  vtkUnsignedCharArray* array;
  array = (vtkUnsignedCharArray*)vtkUnsignedCharArray::New();
  array->SetNumberOfValues(size1*size2*size3);
  array->SetNumberOfComponents(3);
  unsigned char curval;
  for(int x=0;x<size1;x++) {
    for(int y=0;y<size2;y++) {
      if (x<50) curval=200; else curval=0;  //Thats an example for how
I fill the ImageData with values
      array->SetTuple3(x+y*size1,curval, curval, curval);
    }
  }
  data->GetPointData()->AddArray(array); //Adding the data array to the image
 And I write it to JPEG like this:
 vtkJPEGWriter* jpgw=vtkJPEGWriter::New();
 jpgw->SetInput(data);
 jpgw->SetFileName("test.jpg");
 jpgw->Write();
After that I get strange image with gray stripes on the bottom.
What am I doing wrong ? Is there any other way to convert a 2D
ImageData into a JPEG file ?
Thank you,
Thomas
    
    
More information about the vtkusers
mailing list