Graphics/ko

From Qt Wiki
Revision as of 15:43, 3 March 2015 by AutoSpider (talk | contribs) (Add "cleanup" tag)
Jump to navigation Jump to search
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

한국어 | "영어 원문":https://doc.qt.io/qt-5.1/qtdoc/topics-graphics.html

그래픽

Qt 5에서의 그래픽은 주로 명령식 QPainter API 또는 Qt의 선언적 UI 언어인 Qt Quick과 이의 scene graph 뒷단을 통해서 이루어집니다. Qt 5의 그래픽 기능은 다양한 이미지 형식을 읽고 저장하는 것 뿐 아니라 인쇄하는 것 까지도 포함하고 있습니다.

QPainter의 2D 그래픽

"QPainter":https://doc.qt.io/qt-5.1/qtgui/qpainter.html는 서로 다른 표면이나 "QPaintDevice":https://doc.qt.io/qt-5.1/qtgui/qpaintdevice.html 인스턴스들 (QImage, QOpenGLPaintDevice, QWidget, 그리고 QPrinter 와 같은) 위에 텍스트와 이미지, 그리고 벡터 그래픽을 그리기 위한 API를 제공합니다. 실제 그리는 작업은 QPaintDevice의 QPaintEngine에서 일어납니다. 소프트웨어 rasterizer 와 OpenGL (ES) 2.0 뒷단은 가장 중요한 두 가지 QPaintEngine 구현입니다. 이 Raster paint 엔진은 Qt의 소프트웨어 rasterizer이며, QImage 또는 QWidget 위에 그릴 때 사용됩니다. OpenGL paint engine 상에서 이 엔진의 강점은 antialiasing이 활성화 되었을 때의 높은 품질과, 완벽한 기능 집합입니다.

QPainter에서 가장 중요한 렌더링 대상은 다음과 같습니다:

QPainter 와 관련 classes 들은 Qt GUI 모듈의 일부로, "Qt GUI":https://doc.qt.io/qt-5.1/qtgui/qtgui-index.html 페이지에 더 자세한 내용이 설명되어 있습니다.

OpenGL 과 3D

OpenGL은 하드웨어 가속과 3D 그래픽에 가장 널리 적용되는 그래픽 API으로, 모든 데스크탑 플랫폼과 거의 모든 모바일과 임베디드 플랫폼에 구현되어 있습니다. Qt 라이브러리는 사용자가 응용프로그램에 OpenGL을 통합하는 걸 도와주는 많은 클래스들을 포함하고 있습니다.

Qt 5.0 이전에, Qt에서의 OpenGL 지원은 "Qt OpenGL":https://doc.qt.io/qt-5.1/qtdoc/addons.html#qt-opengl-module 모듈을 통해 처리되었습니다. 이 모듈은 아직 남아있지만, 새 코드는 Qt GUI 모듈의 새로운 클래스를 사용하도록 해야 합니다.

Qt Quick scene 그래프

Qt Quick 2.0에선 렌더링을 위한 OpenGL (ES) 2.0 scene graph를 소개합니다. 이는 Qt Quick 2.0의 성능을 대체적으로 향상시켰으며, 이전 버전에 사용되었던 QGraphicsView/QPainter-기반 접근 방식과 비교하면 눈에 띄게 차이가 납니다. 이 scene graph는 item scene을 그래픽으로 표현한 것입니다. 그래픽 레벨의 deep copy로 생각할 수 있으며, 모든 해당 항목을 렌터링하기 위한 충분한 정보를 포함하는 독립된 구조체입니다. 한 번 설정되면, 항목의 상태와 별개로 조작되고 렌더링 될 수 있습니다. 많은 플랫폼에서, scene graph는 GUI 스레드가 다음 프레임의 상태를 준비하는 동안, 전용 렌더링 스레드에서 렌더링 되기도 합니다. Scene graph는 여러분의 QML 파일에 QtQuick 2.0 을 import 할 때 사용되며, 실행을 위해 QQuickView 를 사용합니다.

Qt Quick은, Qt Quick scene graph가 렌더링되기 전후로 각각 발생되는 QQuickWindow::beforeRendering() 이나 QQuickWindow::afterRendering() 신호에 연결함으로써, raw OpenGL 렌더링과 혼합될 수 있습니다. 이 신호들은 렌더링 스레드(가능한 경우)에서 발생되며, 이 연결들의 방향을 지정해야 합니다.

인쇄

Qt는 로컬 또는 네트워크의 실제 프린터에 직접 인쇄하는 것과 PDF 출력물 생성하는 것 둘 다 지원합니다. Qt로 프린트하는 방법은 "Qt Print Support ":https://doc.qt.io/qt-5.1/qtprintsupport/qtprintsupport-index.html 페이지에 상세히 설명되어 있습니다. 여러분의 응용프로그램이나 라이브러리에서 Qt 인쇄 클래스에 대한 접근을 가능하게 하려면, "Qt Print Support ":https://doc.qt.io/qt-5.1/qtprintsupport/qtprintsupport-index.html 모듈 페이지를 참고하십시오.

이미지

Qt는 "QImage":https://doc.qt.io/qt-5.1/qtgui/qimage.html 클래스를 통해서 이미지의 읽기, 쓰기, 조작의 편의를 지원합니다. 또한, 이미지를 불러오고 저장하는 방법을 세밀하게 조정하려면, QImageReader 와 QImageWriter 클래스를 각각 사용할 수 있습니다. Qt에서 지원하지 않는, 더 많은 이미지 형식에 대한 지원을 추가하려면, QImageIOHandler 과 QImageIOPlugin을 사용하여 이미지 형식 플러그인을 생성할 수 있습니다. 더 많은 정보는, "Reading and Writing Image Files":https://doc.qt.io/qt-5.1/qtgui/paintsystem-images.html 페이지를 참고하십시오.