QImage와 QPixmap의 차이점을 이해하지 못하며 동일한 기능을 제공하는 것 같습니다. QImage는 언제 사용해야하며 QPixmap은 언제 사용해야합니까?
QImage와 QPixmap의 차이점을 이해하지 못하며 동일한 기능을 제공하는 것 같습니다. QImage는 언제 사용해야하며 QPixmap은 언제 사용해야합니까?
답변:
QImage 및 QPixmap 에 대한 문서를 읽고 쉽게 대답했습니다 .
QPixmap의 클래스가있다 오프 스크린 페인트 장치로서 사용될 수있다 이미지 표현.
QImage의 클래스는 화소 데이터에 직접 액세스 할 수 있으며, 페인트 장치로 사용될 수있는 하드웨어에 독립적 인 영상 표현을 제공한다.
편집 : 또한 @Dave의 답변에서 :
GUI 스레드 밖에서는 QPixmap을 조작 할 수 없지만 QImage에는 그러한 제한이 없습니다.
그리고 @Arnold에서 :
다음은 일반적으로 (항상은 아님) 적용되는 간단한 요약입니다.
- 이미지를 조작, 수정, 픽셀 변경 등을 계획하는 경우 QImage를 사용하십시오.
- 같은 이미지를 화면에 두 번 이상 그리려면 QPixmap으로 변환하십시오.
Qt 그래픽 시스템에 대해 많은 것을 설명하는 멋진 기사 시리즈가 Qt Labs에 있습니다. 특히이 기사 에는 QImage
대 QPixmap
.
다음은 일반적으로 (항상은 아님) 적용되는 간단한 요약입니다.
QImage
.QPixmap
.QPixmap
은 pixel
코드에서 표현이 중요 하지 않은 "이미지 객체"입니다 . 따라서 QPixmap은 디스플레이 화면에서 이미지를 렌더링하도록 설계 및 최적화 되어 있으며 X11을 사용할 때 XServer에 저장되므로 XWindow에서 QPixmap을 그리는 것이 드로잉보다 훨씬 빠릅니다. 데이터가 이미 서버에 있고 사용할 준비가되어 있으므로 QImages.
QPixmap을 사용하는 경우 : 특히 기존 이미지 (아이콘 .. 배경 .. 등)를 반복적으로 그리려면 QPixmap을 사용하십시오.
QImage 는 클라이언트 코드의 "메모리의 픽셀 배열"이며 , QImage는 I / O, 직접 픽셀 액세스 및 조작을 위해 설계 및 최적화되었습니다.
QImage 사용시기 : Qpaint 를 사용 하여 그림을 그리거나 이미지 픽셀을 조작하려는 경우.
QBitmap 은 단색 (1 비트 깊이) 픽스맵 인 1의 깊이를 보장하는 편리한 QPixmap 서브 클래스입니다. QPixmap과 마찬가지로 QBitmap은 암시 적 데이터 공유를 사용하도록 최적화되어 있습니다.