+
+QImage Book::makeCover(const QString &fileName)
+{
+ TRACE;
+ qDebug() << fileName;
+ QFileInfo info(fileName);
+ if (info.isReadable() && (info.size() < COVER_MAX)) {
+ return makeCover(QPixmap(fileName));
+ }
+ return makeCover(QPixmap(":/icons/book.png"));
+}
+
+QImage Book::makeCover(const QPixmap &pixmap)
+{
+ TRACE;
+ QPixmap src = pixmap.scaled(COVER_WIDTH, COVER_HEIGHT,
+ Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ QPixmap transparent(COVER_WIDTH, COVER_HEIGHT);
+ transparent.fill(Qt::transparent);
+
+ QPainter p;
+ p.begin(&transparent);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.drawPixmap((COVER_WIDTH - src.width()) / 2,
+ (COVER_HEIGHT - src.height()) / 2, src);
+ p.end();
+
+ return transparent.toImage();
+}
+
+