2012-02-17 11 views
2

QPixmap을 사용하여 '회색으로 표시'하는 방법을 알아 내려고 노력 중입니다 ... 기본적으로 모든 색상을 제거하고 알파를 낮 춥니 다.QPixmap 그레이 아웃

답변

2

알파를 설정하는 데 이와 비슷한 것을 사용할 수 있습니까?

QPixmap &setAlpha(QPixmap &px, int val){ 
    QPixmap alpha = px; 
    QPainter p(&alpha); 
    p.fillRect(alpha.rect(), QColor(val, val, val)); 
    p.end(); 
    px.setAlphaChannel(alpha); 
    return px; 
} 

당신은 QImage로 변환하고 convertToFormat()를 편리하게 그레이 스케일로 변환하는 데 사용할 필요가있다.

+0

가, 감사합니다! – DragonDrop

+0

FYI : setAlphaChannel()은 더 이상 사용되지 않으며 Qt3 지원에서만 사용할 수 있습니다. http://developer.qt.nokia.com/doc/qt-4.8/qpixmap-qt3.html –

+0

훌륭하고, 이것을 잘 알고 있습니다. – DragonDrop

2

모든 색상을 제거하는 불감증 알고리즘은 모든 픽셀을 반복하고 RGB 값을 정규화하는 과정을 포함합니다.

의사 코드는 다음과 같습니다 : 좋은 일

foreach pixel in image.bits() { 

    int grayColor = 0.299f * pixel.red + 
        0.587f * pixel.green + 
        0.114f * pixel.blue ; 

    image.putPixel(grayColor); 
}