@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);
|
Все три подхода дают результат в виде черно-белой картинки.
@ella
Вот пример кода, который преобразует изображение в черно-белое с использованием класса QImage:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Загрузка исходного изображения
QImage originalImage("original_image.jpg");
// Создание нового QImage для черно-белого изображения
QImage blackWhiteImage(originalImage.size(), QImage::Format_RGB32);
// Проход по каждому пикселю и преобразование его в черно-белый
for(int y = 0; y < originalImage.height(); y++) {
for(int x = 0; x < originalImage.width(); x++) {
QRgb pixel = originalImage.pixel(x, y);
int gray = qGray(pixel);
blackWhiteImage.setPixel(x, y, qRgb(gray, gray, gray));
}
}
// Сохранение черно-белого изображения
blackWhiteImage.save("black_white_image.jpg");
|
Этот код загружает исходное изображение, создает новое черно-белое изображение того же размера, затем преобразует каждый пиксель в черно-белый и сохраняет результат в файл "black_white_image.jpg".