Example #1
0
void processFilters(QImage *& image, QListIterator<Filter *> i)
{
    while (i.hasNext())
    {
        Filter * f = i.next();

        uint w = image->width();
        uint h = image->height();

        if (f->getArea().isNull())
        {
            f->setArea(QRect(QPoint(0, 0), QSize(w, h)));
        }

        if (! f->isApplicable(w, h))
        {
            QRect area = f->getArea();

            fatal(QObject::tr("Too small image (%1x%2), pointed filter"
                " with pointed area (%3x%4+%5+%6) not applicable")
                .arg(w).arg(h).arg(area.x()).arg(area.y())
                .arg(area.width()).arg(area.height()));
        }

        QImage * newImage = f->filter(*image);

        delete image;
        image = newImage;
    }
}