Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2012, 18:07   #1
AlinaSka
Новичок
Джуниор
 
Регистрация: 07.10.2012
Сообщений: 1
По умолчанию Inde out of range при повороте изображения

Когда применяю фильтр "поворот изображения", то картинка становится просто серым прямоугольником, в дебагере написано QImage::setPixel: Index -5630919 out of range
Код:
void CEngine::toScale(int alpha)
{
    uint uiPercent, uiQuantum = m_Image.width() * m_Image.height() / 100;
    int w = m_Image.width();
    int h = m_Image.height();
    QImage imgNew(w, h, QImage::Format_Indexed8);
    int x0 = w/2, y0 = h/2;
    for(int yn=0;yn<h; yn++)
        for(int xn=0;xn<w;xn++){
            int x=(int)((xn-x0)*cos(alpha*PI/180)+(yn-y0)*sin(alpha*PI/180)+x0);
            int y=(int)(-(xn-x0)*sin(alpha*PI/180)+(yn-y0)*cos(alpha*PI/180)+y0);
            if(x<w && x>=0 && y<h && y>=0){
                int r = qRed(m_Image.pixel(x,y));
                int g = qGreen(m_Image.pixel(x,y));
                int b = qBlue(m_Image.pixel(x,y));
                imgNew.setPixel(xn,yn,qRgb(r,g,b));
            }
            else{
                imgNew.setPixel(xn,yn,qRgb(0,0,0));
            }
            uiPercent = yn * m_Image.width() + xn;
            if (uiPercent % uiQuantum == 0 && m_fnCallback)
                m_fnCallback(uiPercent / uiQuantum, m_pCallbackExtra);
        }
    m_Image=imgNew;
    if (m_fnCallback) m_fnCallback(100, m_pCallbackExtra);
}

Последний раз редактировалось Stilet; 07.10.2012 в 18:37.
AlinaSka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка 1004 при удалении объекта типа Range Red_Garry Microsoft Office Excel 2 26.02.2011 15:12
C++ Builder XE. "Range check error" при выполнении программы. Zinigan C++ Builder 1 20.02.2011 08:22
Искажения изображения при повороте rubik Помощь студентам 1 06.05.2010 12:23
Ошибка при загрузке изображения artemavd Общие вопросы Delphi 3 13.04.2010 16:41
Проблема с Range при работе с Word Абдуллаев Рустам БД в Delphi 0 10.05.2009 23:50