Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: jatsuk от Сентябрь 16, 2011, 09:26



Название: Редактирование изображения QImage
Отправлено: jatsuk от Сентябрь 16, 2011, 09:26
Есть bmp 256 цветов
Открываю его, считываю каждый пиксель (так надо)

Код:
QImage image(fileName);
 for (int i=0; i<height_im; i++)
 for (int j=0; j<width_im; j++)
 {
 QRgb rgb = image.pixel(i, j);
 red[i][j] = qRed( rgb );
 green[i][j] = qGreen( rgb );
 blue[i][j] = qBlue( rgb );

Получаю 3 массива с отдельно R G B. Далее выполняю какие либо преобразования с этим масивом...

Вопрос как это вернуть в первоначальный вид (из R G B получить QRgb) это надо, чтобы сохранить  второе, уже измененое изображение.
Второй вопрос как это изображение создать (старое надо сохранить, а то его везде заменяют и всё). Я так понял через  image2.setPixel(nX+1,nY+1,color);, но как задать размер для нового и т.д.


Название: Re: Редактирование изображения QImage
Отправлено: jatsuk от Сентябрь 16, 2011, 09:29
Незнаю правильно ли
QRgb tc = QColor( 111, 111, 111 ).toRgb(); ???

Компилятор говорит , что так нельзя конвертить


Название: Re: Редактирование изображения QImage
Отправлено: Ubuntu_linux от Сентябрь 17, 2011, 00:52
setRed, setGreen, setBlue

очень просто сохранять QImage


Название: Re: Редактирование изображения QImage
Отправлено: jatsuk от Сентябрь 17, 2011, 06:59
спс, но это в данном случае не очень удобно...

вот как я сделал

Код:
int r=red[i][j];
 int g=green[i][j];
 int b=blue[i][j] ;

 tc= qRgb (r,g,b);
 image2.setPixel(i, j, tc);

 }

 QString fileNamesave = QFileDialog::getSaveFileName(
                 this,
             tr("Сохранить изображение"),
                 QDir::currentPath(),
                 tr("BMP Files (*.bmp)") );

 bool saved = image2.save(fileNamesave, "BMP");