@ella
Существует несколько способов преобразовать картинку в черно-белую в Qt.
1 2 3 4 5 6 7 8 9 10 |
QPixmap pixmap("original_image.jpg"); QGraphicsScene scene; QGraphicsPixmapItem item(pixmap); QGraphicsPixmapItem *bw_item = scene.addPixmap(pixmap); QGraphicsBlurEffect *filter = new QGraphicsBlurEffect(); filter->setBlurRadius(0); filter->setEnabled(true); bw_item->setGraphicsEffect(filter); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
QPixmap pixmap("original_image.jpg"); QImage image = pixmap.toImage(); for(int y=0; y<image.height(); y++) { for(int x=0; x<image.width(); x++) { QRgb pixel = image.pixel(x,y); int gray = qGray(pixel); image.setPixel(x,y,qRgb(gray,gray,gray)); } } QPixmap blackWhitePixmap = QPixmap::fromImage(image); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
QPixmap pixmap("original_image.jpg"); QImage image = pixmap.toImage(); for(int y=0; y<image.height(); y++) { for(int x=0; x<image.width(); x++) { QRgb pixel = image.pixel(x,y); int gray = ((qRed(pixel)*0.3) + (qGreen(pixel)*0.59) + (qBlue(pixel)*0.11)); image.setPixel(x,y,qRgb(gray,gray,gray)); } } QPixmap blackWhitePixmap = QPixmap::fromImage(image); |
Все три подхода дают результат в виде черно-белой картинки.