내가 가진 QImage의 알파를 변경해야합니다. 그래서 다른 QImages와 뒤섞여 있습니다. 이것은 신속하게 켜고 끌 필요가 있습니다.QT 변경 QImage 알파
이전에는 모든 단일 이미지를 다시 만들고 각기 다른 알파 값으로 새로운 색상을 지정해야했습니다. 그러나 이제 다시 그리기와 그림 그리기 대신에 같은 원본 이미지를 유지하고 싶습니다.
나는이 지금처럼 할 노력하고있어 :
QImage image;
unsigned int rgb;
for(int y=0;y<image.height();y++){
for(int x=0;x<image.width();x++){
rgb=image.pixel(x,y);
image.setPixel(x,y,qRgba(qRed(rgb),qGreen(rgb),qRed(rgb),120));
}
}
은 좀 상당히 예기치 않은 동작을 얻고있다. 이미지를 전환 할 때 가끔 색상이 손실되거나 알파가 변경되지 않습니다. 알파가 돌아 왔을 때 알파가 바뀌면 (나는 알파 255를 120 대신 다른 곳으로 하드 코드합니다) 정상으로 돌아 가지 않습니다.
어쨌든이 작업을 수행하는 올바른 방법이 아닌 것 같습니다. 그렇게 어렵지는 않습니다. 알파를 변경하려면 이미지에 단일 함수 호출이 있어야하지만 아직은 찾지 못했던 것 같습니다. 당신이 QGraphicsView
또는 다른 QWidget
에 QImage
를 사용하는 경우
오타가 있습니다. 마지막 두 번째 qRgba() 인수는 qRed 대신 qBlue 여야합니다. –
어떤 상황에서 이미지를 페인트합니까? QPainter를 사용하는 경우 대신 칠할 때 QPainter :: setOpacity를 사용하는 것이 좋습니다. –