vtk로 만들어진 이미지를 CBitmap 과 CDC를 이용하여 재구성 후 윈도우 에서 제공하는 함수를 이용해 Clipboard에 저장한다.아~ 정말 vtk에 대한 구글링 자료가 너무 부족해서 이래저래 삽질을 많이 했다. 필요한 분이 있으면 도움이 되었음 좋겠다. if(OpenClipboard()){int *size = this->RenderWindow->GetSize(); unsigned char *data = this->RenderWindow->GetPixelData(0, 0, size[0]-1, size[1]-1, 1); CDC *pDC = GetDC();CBitmap bitmap;bitmap.CreateCompatibleBitmap(pDC, size[0], size[1]); unsigned long..
vtk 라이브러리를 이용하여 이미지를 저장하기. CString strPath = "E:\\hwanschoi.bmp"vtkNew winToImg;winToImg->SetInput(this->RenderWindow); //vtkWindow객체를 넘겨주면 된다.winToImg->SetInputBufferTypeToRGBA();winToImg->ReadFrontBufferOff(); vtkNew writer;writer->SetInputConnection(winToImg->GetOutputPort());writer->SetFileName(strPath);writer->Write(); 처음에는 vtkBMPWriter 객체만 가지고 이걸 어떻게 저장해야 되나~ 한참 찾고 헤매다 vtkWindowToImageFilt..
VTK 차트에서 기본적으로 표시되는 점의 두께를 조절 하고 싶을 경우가 있다.외부에서 아무리 Pen의 SetWidth()에 3.0을 넣어도 점의 크기가 두껍게 나와 VTK라이브러리 소스를 분석해 보았다.보통은 랜더링 하는 Pen의 width 값을 변경 해 주면 되는데 VTK의 경우 내부 소스코드에서 하드코딩이 되어 있는 부분이 있다.아래는 VTK라이브러리 vtkPlotPoints 클래스의 Paint 함수에 구현 되어 있는 부분이다.// Maintain legacy behavior (using pen width) if MarkerSize was not setfloat width = this->MarkerSize;if (width Pen->GetWidth() * 2...
VTK 라이브러리 에서 문자열의 넓이 및 높이 값을 얻어오는 방법 이다. 참고로 VTK는 6.2.0 기준이다.VTK 내부에서 텍스트를 렌더링 할때 사용하는 방법으로 텍스트를 이미지화 하여 길이를 구할수 있다. #include #include #include #include std::string strSampleText = "문자열 길이 구하기"; // 텍스트의 정보 객체vtkTextProperty* titleProperties = vtkTextProperty::New();// 이미지화 객체vtkTextRendererStringToImage* textRenderer = vtkTextRendererStringToImage::New();// 이미지 데이터 객체vtkSmartPointer imageData = ..
VTK 홈페이지에 있는 Sample을 빌드 해보자. 1. 홈페이지에서 원하는 sample을 선택 하자.VTK 홈페이지에 들어가 샘플 페이지를 간다. (http://www.vtk.org/Wiki/VTK/Examples/Cxx)필자는 Parallel coordinates 차트를 빌드 하려고 한다. 원하는 샘플이 있으면 Ctrl + F 를 이용하여 찾으면 편하다. 그럼 URL(http://www.vtk.org/Wiki/VTK/Examples/Cxx)로 접속하여 Parallel coordinates를 찾아 선택한다. 2. 홈페이지에 있는 소스 가져오기 ( Copy&Paste )빈 폴더 하나를 생성한다. 그 폴더를 src 폴더라 칭하겠다.src 폴더에 Parallel coordinates sample 안에 있는 ..