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..
Poco라이브러리를 이용하여 파일에 로그를 써보자. 우선 로그 파일을 생성할 폴더를 만들어야겠다. 디렉토리 생성에 대해서는 이전 포스팅를 참고하면 된다.Poco를 이용한 디렉토리 생성하기 자 그럼 파일에 로그를 써보자!!! #include "Poco/FormattingChannel.h"#include "Poco/PatternFormatter.h"#include "Poco/DateTime.h"#include "Poco/FileChannel.h" // 로그 파일명을 날짜에 맞춰 만든다. (Poco 라이브러리의 DateTime을 이용)std::string strFileName = Poco::format("%d%02d%02d", Poco::DateTime().year(), Poco::DateTime().mont..
Poco 라이브러리를 이용하여 디렉토리 생성 하자. 당연히 심플하면서 간단하다. 현재 위치에 MyLog 라는 폴더를 생성 한다.#include "Poco/File.h"#include "Poco/Path.h" std::string strDir = Poco::format("%sMyLog", Poco::Path::current());Poco::File logDir(strDir);logDir.createDirectories(); Poco::File 에서 디렉토리를 생성하는 함수가 두가지 있다.createDirectories() 와 createDirectory() 이다. 대충 함수명으로 짐작이 가능하다. createDirectories() 함수내가 지정한 하위 폴더까지 생성해 준다.std::string strDi..
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 안에 있는 ..