Russian Qt Forum

Qt => Мультимедиа => Тема начата: anv от Июнь 13, 2013, 13:20



Название: QImage scale не точное
Отправлено: anv от Июнь 13, 2013, 13:20
Привет.Есть изображение 100*100 пикс. Масштабирую его:
Код:
img2=image.scaled(QSize(3000,3000),Qt::KeepAspectRatio);

и на каждом его пикселе расставляю, в новом,увеличенном img2, номер цвета:
Код:
for (int i = 0; i < image.width(); i++)
            {
                for (int j = 0; j < image.height(); j++)
                {
                    pos_text.append(QPoint(int(i*30+15),int(j*30+15)));

                    if (image.pixel(i,j) == color1)
                    {
                       
                      num_color1++;
                       
                      pixtext.append("1");

                    }

Все нормально номера расставляются, но чем дальше от начала, тем больше  смещение от середины клеточки, и по x и по у. Т.е. получается , что во время масштабирования и прпорционального изменения координат происходит расхождение.Как можно избежать смещения, что бы номера расставлялись точно по середине каждой клетки.


Название: Re: QImage scale не точное
Отправлено: Авварон от Июнь 13, 2013, 16:03
Нужно больше параметров!


Название: Re: QImage scale не точное
Отправлено: anv от Июнь 13, 2013, 18:50
Извиняюсь,невнятно объяснил...

У меня картинка 100*100 пикс(1пикс=1см) сделаная в фотошопе 8 цветная. Я  расставляю в каждом пикселе номер цвета(1,2,...),по центру пикселя и увеличиваю.
 Мои действия:я прохожу циклом каждый пиксель и полученные координаты загоняю в QVector, увеличивая их (i*30+15) . Затем делаю еще один QImage и масштабирую его в 30 раз т.е.3000*3000.
В итоге большая картинка должна выглядеть как в примере в QImage - изображение из квадратов в центре каждого маленькая цифра - номер цвета. Но у меня почему то цифры смещаются, причем не равномерно,а чем дальше от начала координат тем больше. Т.е как будто к каждой коордтнате прибавляется ее номер умноженный на какое то маленькое значение.

***********************

Все починилось:) Вмесото image.scale сделал так:
Код:
QRectF target(0.0, 0.0, 3000.0, 3000.0);
    QRectF source(0.0, 0.0, 100.0, 100.0);
    painter.drawImage(target,img2,source);


Название: Re: QImage scale не точное
Отправлено: Авварон от Июнь 18, 2013, 00:17
Я к тому, что у имадж скейла есть еще 1 параметр, отвечающий за качество.