Programing

QImage와 QPixmap의 차이점은 무엇입니까?

crosscheck 2020. 11. 1. 17:20
반응형

QImage와 QPixmap의 차이점은 무엇입니까?


QImage와 QPixmap의 차이점을 이해하지 못하며 동일한 기능을 제공하는 것 같습니다. QImage는 언제 사용해야하며 QPixmap은 언제 사용해야합니까?


QImageQPixmap 에 대한 문서를 읽고 쉽게 대답했습니다 .

QPixmap의 클래스가있다 오프 스크린 페인트 장치로서 사용될 수있다 이미지 표현.

QImage의 클래스는 화소 데이터에 직접 액세스 할 수 있으며, 페인트 장치로 사용될 수있는 하드웨어에 독립적 인 영상 표현을 제공한다.

편집 : 또한 @Dave의 답변에서 :

GUI 스레드 밖에서는 QPixmap을 조작 할 수 없지만 QImage에는 그러한 제한이 없습니다.

그리고 @Arnold에서 :

다음은 일반적으로 (항상은 아님) 적용되는 간단한 요약입니다.

  • 이미지를 조작, 수정, 픽셀 변경 등을 계획하는 경우 QImage를 사용하십시오.
  • 같은 이미지를 화면에 두 번 이상 그리려면 QPixmap으로 변환하십시오.

Qt 그래픽 시스템에 대해 많이 설명하는 멋진 기사 시리즈가 Qt Labs에 있습니다. 특히이 기사 에는 QImageQPixmap.

다음은 일반적으로 (항상은 아님) 적용되는 간단한 요약입니다.

  • 이미지를 조작, 수정, 픽셀 변경 등을 계획하는 경우 QImage.
  • 같은 이미지를 화면에 두 번 이상 그리려면 QPixmap.

한 가지 중요한 차이점은 QPixmap기본 GUI 스레드 외에는를 만들거나 조작 할 수 없다는 것입니다. 그러나 QImage백그라운드 스레드에서 인스턴스를 만들고 조작 한 다음 GUI 스레드로 다시 전달한 후 변환 할 수 있습니다.


산업 환경에서 중요 :

QPixmap은 디스플레이를 수행하는 비디오 카드에 저장됩니다. QImage가 아닙니다.

따라서 응용 프로그램을 실행하는 서버와 디스플레이를 수행하는 클라이언트 스테이션이있는 경우 네트워크 사용 측면에서 매우 중요합니다.

Pixmap에서 Redraw는 네트워크를 통해 다시 그리기 (몇 바이트) 명령 만 보내는 것으로 구성됩니다.

QImage에서는 전체 이미지 (약 몇 MB)를 보내는 것으로 구성됩니다.


  • QPixmappixel코드에서 표현이 중요 하지 않은 "이미지 객체"입니다 . 따라서 QPixmap은 디스플레이 화면에서 이미지를 렌더링하도록 설계 및 최적화 되어 있으며 X11을 사용할 때 XServer에 저장되므로 XWindow에서 QPixmap을 그리는 것이 드로잉보다 훨씬 빠릅니다. 데이터가 이미 서버에 있고 사용할 준비가되어 있으므로 QImages.

    QPixmap을 사용하는 경우 : 기존 이미지 (아이콘 .. 배경 .. 등)를 특히 반복적으로 그리려면 QPixmap을 사용하십시오.

  • QImage클라이언트 코드의 "메모리의 픽셀 배열"이며 , QImage는 I / O, 직접 픽셀 액세스 및 조작을 위해 설계 및 최적화되었습니다.

    QImage 사용시기 : Qpaint 를 사용 하여 그림을 그리거나 이미지 픽셀을 조작하려는 경우.

  • QBitmap 은 단색 (1 비트 깊이) 픽스맵 인 1의 깊이를 보장하는 편리한 QPixmap 하위 클래스입니다. QPixmap과 마찬가지로 QBitmap은 암시 적 데이터 공유를 사용하도록 최적화되어 있습니다.

  • QPicture 는 QPainter 명령 (당신의 그림)을 기록하고 재생하는 페인트 장치입니다.

참고 URL : https://stackoverflow.com/questions/10307860/what-is-the-difference-between-qimage-and-qpixmap

반응형