#include <QtGui>
#include <iostream>

using namespace std;

qlonglong imageSpace(const QString &path)
{
    QDir dir(path);
    qlonglong size = 0;

    QStringList filters;
    foreach (QByteArray format, QImageReader::supportedImageFormats())
        filters += "*." + format;

    foreach (QString file, dir.entryList(filters, QDir::Files))
        size += QFileInfo(dir, file).size();

    foreach (QString subDir, dir.entryList(QDir::Dirs
                                           | QDir::NoDotAndDotDot))
        size += imageSpace(path + QDir::separator() + subDir);

    return size;
}

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    QStringList args = app.arguments();

    QString path = QDir::currentPath();
    if (args.count() > 1)
        path = args[1];

    cout << "Space used by images in " << qPrintable(path)
         << " and its subdirectories is " << (imageSpace(path) / 1024)
         << " KB" << endl;

    return 0;
}