Hi,
I tried with following code snippet but got a wrong image rendered.
MemoryStream ms1 = new MemoryStream();
Image image = Image.FromFile(@"D:\visual studio 2015\Projects\VTKImageBufferRender\VTKImageBufferRender\administrator.png");
image.Save(ms1, System.Drawing.Imaging.ImageFormat.Png);
GCHandle hObject = GCHandle.Alloc(ms1.GetBuffer(), GCHandleType.Pinned);
IntPtr buffer = hObject.AddrOfPinnedObject();
if (hObject.IsAllocated)
{
hObject.Free();
}
vtkImageImport imageImport = vtkImageImport.New();
imageImport.SetDataSpacing(1, 1, 1);
imageImport.SetDataOrigin(0, 0, 0);
imageImport.SetWholeExtent(0, image.Width - 1, 0, image.Height - 1, 0, 0);
imageImport.SetDataExtentToWholeExtent();
imageImport.SetDataScalarTypeToUnsignedChar();
imageImport.SetNumberOfScalarComponents(4);
imageImport.SetImportVoidPointer(buffer);
imageImport.Update();
// Create an actor
vtkImageActor actor = vtkImageActor.New();
actor.SetInputData(imageImport.GetOutput());
// Setup renderer
vtkRenderer renderer = vtkRenderer.New();
renderer.AddActor(actor);
renderer.ResetCamera();
// Setup render window
vtkRenderWindow renderWindow = vtkRenderWindow.New();
renderWindow.AddRenderer(renderer);
// Setup render window interactor
vtkRenderWindowInteractor renderWindowInteractor = vtkRenderWindowInteractor.New();
vtkInteractorStyleImage style = vtkInteractorStyleImage.New();
renderWindowInteractor.SetInteractorStyle(style);
// Render and start interaction
renderWindowInteractor.SetRenderWindow(renderWindow);
renderWindow.Render();
renderWindowInteractor.Initialize();
renderWindowInteractor.Start();
Original PNG file:
Rendered Image inside VTK window