QImage PyramidThumbnailGenerator::generate( const QString &filename ) const
{
    QImage image = DynamicTexture( filename ).getRootImage();
    if( !image.isNull( ))
    {
        image = image.scaled( size_, aspectRatioMode_ );
        addMetadataToImage( image, filename );
        return image;
    }
    else
    {
        put_flog( LOG_ERROR, "could not open pyramid file: '%s'",
                  filename.toLatin1().constData( ));
        return createErrorImage( "pyramid" );
    }
}
QImage PyramidThumbnailGenerator::generate(const QString &filename) const
{
    QImageReader reader( filename + "amid/0.jpg" );
    if (reader.canRead())
    {
        QImage image = reader.read();
        image = image.scaled(size_, aspectRatioMode_);
        addMetadataToImage(image, filename);
        return image;
    }
    else
    {
        put_flog(LOG_ERROR, "could not open pyramid file: %s", filename.toLatin1().constData());
        return createErrorImage("pyramid");
    }
}
QImage PDFThumbnailGenerator::generate( const QString& filename ) const
{
    const PDF pdf( filename );

    if( !pdf.isValid( ))
    {
        put_flog( LOG_ERROR, "could not open pdf file: '%s'",
                  filename.toLatin1().constData( ));
        return createErrorImage( "pdf" );
    }

    QImage image = pdf.renderToImage( size_ );

    if( image.isNull( ))
    {
        put_flog( LOG_ERROR, "could not render pdf file: '%s'",
                  filename.toLatin1().constData( ));
        return createErrorImage( "pdf" );
    }

    addMetadataToImage( image, filename );
    return image;
}