[Ves] kiwiviewer background image not working

Pat Marion pat.marion at kitware.com
Sun Oct 7 22:15:27 EDT 2012


Oops, I see this code is actually not available in VES master.  It's on an
unmerged topic branch on the stage remote.  I will merge it to the 'next'
branch now and send another email when it's available.

Pat

On Sun, Oct 7, 2012 at 10:06 PM, Pat Marion <pat.marion at kitware.com> wrote:

> Hi,
>
> Sorry for the missing code in vesKiwiViewerApp::setBackgroundTexture().
> The feature was broken for a while so the code was commented out.  It is
> working now, so I'll update the method with the correct  code.  You should
> just need to do this:
>
>
> // load image (could be a jpg or png)
> vtkSmartPointer<vtkImageData> image =
> vtkImageData::SafeDownCast(this->Internal->DataLoader.loadDataset(filename));
>
> // convert vtk image to ves image
> vesImage::Ptr image =
> vesKiwiDataConversionTools::ConvertImage(reader->GetOutput());
>
> // set background image on renderer
> this->renderer()->background()->setImage(image);
>
>
> Pat
>
>
>  On Sun, Oct 7, 2012 at 9:25 PM, Walter Alejandro Diaz Reginensi <
> wadrwadr at gmail.com> wrote:
>
>>  Hello,
>> Very nice to join the mail list!!
>> I started studying kiviwiewer and ves/vtk just a few days ago trying to
>> put an image as background in kiwiviewer.
>> I found the function that should do it
>>
>> KiwiviewerApp::setBackgroundTexture(const std:string & fileName);
>>
>> but has no code inside it, so I tried this :
>>
>> void vesKiwiViewerApp::setBackgroundTexture(const std::string& filename)
>>
>> {
>>
>>      vtkSmartPointer<vtkJPEGReader> reader =
>> vtkSmartPointer<vtkJPEGReader>::New();
>>
>>     reader->SetFileName(filename);
>>
>>     reader->Update();
>>
>>     vtkSmartPointer<vtkImageData> image = reader->GetOutput();
>>
>>     assert(image);
>>
>>     vtkSmartPointer<vtkUnsignedCharArray> pixels =
>> vtkUnsignedCharArray::SafeDownCast(image->GetPointData()->GetScalars());
>>
>>     int width = image->GetDimensions()[0];
>>
>>     int height = image->GetDimensions()[1];
>>
>>     assert(pixels);
>>
>>     assert(pixels->GetNumberOfTuples() == width*height);
>>
>>     this->Image = vesImage::Ptr(new vesImage());
>>
>>     this->Image->setWidth(width);
>>
>>     this->Image->setHeight(height);
>>
>>     this->Image->setPixelFormat(pixels->GetNumberOfComponents() == 4 ?
>> vesColorDataType::RGBA
>>
>>                             : pixels->GetNumberOfComponents() == 3 ?
>> vesColorDataType::RGB
>>
>>                             : vesColorDataType::Luminance);
>>
>>     this->Image->setPixelDataType(vesColorDataType::UnsignedByte);
>>
>>     this->Image->setData(pixels->WriteVoidPointer(0, 0),
>> pixels->GetSize());
>>
>>     this->renderer()->background()->setImage(this->Image);
>>
>> }
>>
>>
>> The code above is based from a test file inside the repository
>> called TestTexturedBackground.cpp
>>
>> This should work but doesn't, the functions did not return any errors so
>> I assume that I'm configuring all ok, but the background is not rendered at
>> all.
>>
>> Can you please help me?
>>
>> Thanks in advance.
>>
>> Walter
>>
>> _______________________________________________
>> Ves mailing list
>> Ves at public.kitware.com
>> http://public.kitware.com/cgi-bin/mailman/listinfo/ves
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/ves/attachments/20121007/b4247d34/attachment-0001.html>


More information about the Ves mailing list