qimage 예제


QImage는 원본의 변형 된 버전인 새 이미지를 만들기위한 여러 기능을 지원합니다. 예를 들어, 복사(), convertBitOrder(), convertDepth(), createAlphaMask(), create휴리스틱 마스크(), 미러(), 스케일(), 스무드스케일(), 스왑RGB() 및 xForm()을 클릭합니다. 또한 설정알파버퍼(), setColor(), setDotsPerMeterX() 및 setDotsPerMeterY() 및 setNumColors()와 같은 이미지의 속성을 변경하기 위한 기능도 있습니다. 또한 도움말 메뉴는 특히 이미지 뷰어 예제 및 일반적으로 Qt에 대한 정보를 사용자에게 제공합니다. 색상 테이블의 항목은 QRgb 값으로 인코딩된 ARGB 쿼드러블러입니다. qRgb() 및 qRgba() 함수를 사용하여 setColor() 함수에 사용하기에 적합한 QRgb 값을 만듭니다. 예: QImage를 사용하는 `예` 이미지 뷰어만… 나는 원래 소스가 http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html 것 같아요 … 몇 가지 비교적 사소한 수정, 주로 명령줄에서 이미지 파일을로드 … about() 슬롯을 구현하여 예제가 표시하도록 디자인된 내용을 설명하는 메시지 상자를 만듭니다. const가 아닌 데이터 버퍼를 사용하는 유사한 QImage 생성기와 달리 이 버전은 버퍼의 내용을 변경하지 않습니다. 예를 들어 QImage:bits()를 호출하면 생성자에게 전달된 버퍼가 아니라 이미지의 자세한 복사본이 반환됩니다.

이렇게 하면 원시 데이터가 변경될 가능성 없이 원시 데이터에서 QImage를 생성하는 효율성을 높일 수 있습니다. 이미지에서 열리는 QPainter의 배율이 조정됩니다. 예를 들어 2.0의 비율로 200×200 이미지에 페인팅하면 효과적인(장치 독립적) 페인팅 경계가 100×100이 됩니다. QImage는 이미지에 대한 정보를 얻기 위한 다양한 방법을 지원합니다(예: colorTable(), allGray(), isGrayscale(), 비트오더(), 바이트퍼라인(), 깊이(), 도트퍼미터X() 및 도츠퍼미터(), hasAlphaBuffer(), numBytes(), numColors() 및 너비() 및 높이()를 입력합니다. 이 함수는 지정된 장치에서 QImage를 읽습니다. 예를 들어 QByteArray에 직접 이미지를 로드하는 데 사용할 수 있습니다. 모든 이미지 형식이 포함된 텍스트를 지원하는 것은 아닙니다. QImageWriter::supportsOption()를 사용하여 특정 이미지 또는 형식이 삽입 텍스트를 지원하는지 확인할 수 있습니다. 예를 들어 다른 형식은 지원되지 않습니다. 이 함수는 이러한 경우 null CGImageRef를 반환합니다. 그런 다음 이 함수의 사용자는 QImage를 먼저 지원되는 포메이트(예: Format_ARGB32_Premultiplied)로 변환할 수 있습니다.

이 예제에서는 QLabel 및 QScrollArea를 결합하여 이미지를 표시하는 방법을 보여 주었습니다. 이 예제에서는 QLabel의 콘텐츠 확장 기능(QLabel::scaledContents) 및 QScrollArea의 콘텐츠 크기를 자동으로 조정하는 기능(QScrollArea::widgetResizable)을 사용하여 확대/축소 및 크기 조정 기능을 구현하는 방법을 보여 줍니다. 또한 이 예제에서는 QPainter를 사용하여 이미지를 인쇄하는 방법을 보여 주어 있습니다. 32비트 이미지의 경우 setPixel() 함수를 사용하여 지정된 좌표에서 픽셀의 색상을 ARGB 쿼드러블리로 지정된 다른 색상으로 변경할 수 있습니다. 적절한 QRgb 값을 만들려면 qRgb() (지정된 RGB 값에 기본 알파 구성 요소 추가, 즉 불투명 색상 만들기) 또는 qRgba() 함수를 사용합니다. 예: 간단하지만 QImage를 표시하는 방법을 보여주는 완전한 예는 다음과 같습니다: QScrollArea::widgetResizable 속성이 false(기본값)로 설정된 경우 스크롤 영역은 자식 위젯의 크기를 지정합니다. 이 속성이 true로 설정된 경우 스크롤 영역은 피할 수 있는 스크롤 막대를 피하거나 여분의 공간을 활용하기 위해 위젯의 크기를 자동으로 조정합니다. 그러나 스크롤 영역은 위젯 조정 가능한 속성과 무관하게 자식 위젯의 최소 크기 힌트를 존중합니다.

따라서 이 예제에서는 스크롤 영역이 레이블의 최소 크기 힌트보다 작아질 때 스크롤 막대가 나타나지 않도록 imageLabel의 크기 정책을 생성자에서 무시하도록 설정합니다. 세 가지 예제 이미지 파일이 소스에 포함되어 있으며 Windows 64비트 런타임imageview.exe가 포함되어 있습니다. CMakeLists.txt에는 설치가 포함되지 않았습니다.