SVN commit 491071 by cgilles:
digiKam from trunk : It's Christmast Time ! Camera Interface can display RAW file thumbnails. Tom you can backport this commit into stable branch. Next stage is to create new DImg method to get thumbnail. CCMAIL: [hidden email] M +10 -9 Makefile.am M +48 -14 umscamera.cpp --- trunk/extragear/graphics/digikam/utilities/cameragui/Makefile.am #491070:491071 @@ -2,20 +2,21 @@ noinst_LTLIBRARIES = libcameragui.la -libcameragui_la_SOURCES = cameraui.cpp cameraiconview.cpp \ - cameraiconitem.cpp cameracontroller.cpp \ - animwidget.cpp renamecustomizer.cpp \ - dkcamera.cpp gpcamera.cpp umscamera.cpp \ - gpiteminfo.cpp gpiteminfodlg.cpp camerainfodialog.cpp \ - albumselectdialog.cpp +libcameragui_la_SOURCES = cameraui.cpp cameraiconview.cpp \ + cameraiconitem.cpp cameracontroller.cpp \ + animwidget.cpp renamecustomizer.cpp \ + dkcamera.cpp gpcamera.cpp umscamera.cpp \ + gpiteminfo.cpp gpiteminfodlg.cpp camerainfodialog.cpp \ + albumselectdialog.cpp libcameragui_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) libcameragui_la_LIBADD = $(LIB_GPHOTO) $(LIBKEXIF_LIBS) $(LIBJPEG) INCLUDES= -I$(top_srcdir)/digikam/digikam \ - -I$(top_srcdir)/digikam/utilities/imageeditor/editor \ - -I$(top_srcdir)/digikam/libs/jpegutils \ - $(GPHOTO_CFLAGS) $(LIBKEXIF_CFLAGS) $(all_includes) + -I$(top_srcdir)/digikam/utilities/imageeditor/editor \ + -I$(top_srcdir)/digikam/libs/jpegutils \ + -I$(top_srcdir)/digikam/libs/dcraw \ + $(GPHOTO_CFLAGS) $(LIBKEXIF_CFLAGS) $(all_includes) digikamcameraguiicondir = $(kde_datadir)/digikam/icons digikamcameraguiicon_ICON = AUTO --- trunk/extragear/graphics/digikam/utilities/cameragui/umscamera.cpp #491070:491071 @@ -1,10 +1,12 @@ /* ============================================================ * Author: Renchi Raju <[hidden email]> + * Gilles Caulier <caulier dot gilles at free.fr> * Date : 2004-12-21 * Description : * - * Copyright 2004 by Renchi Raju - + * Copyright 2004-2005 by Renchi Raju + * Copyright 2005 by Gilles Caulier + * * This program is free software; you can redistribute it * and/or modify it under the terms of the GNU General * Public License as published by the Free Software Foundation; @@ -18,14 +20,8 @@ * * ============================================================ */ -#include <kdebug.h> +// C Ansi includes. -#include <qdir.h> -#include <qfileinfo.h> -#include <qfile.h> -#include <qstringlist.h> -#include <qdeepcopy.h> - extern "C" { #include <sys/types.h> @@ -34,10 +30,27 @@ #include <utime.h> } +// QT includes. + +#include <qdir.h> +#include <qfileinfo.h> +#include <qfile.h> +#include <qstringlist.h> +#include <qdeepcopy.h> + +// KDE includes. + +#include <ktempfile.h> +#include <kdebug.h> + +// LibKExif includes. + #include <libkexif/kexifdata.h> +// Local includes. + +#include "dcraw_parse.h" #include "albumsettings.h" - #include "umscamera.h" UMSCamera::UMSCamera(const QString& model, @@ -130,17 +143,38 @@ QImage& thumbnail) { m_cancel = false; + + // Trying to get thumbnail from Exif data. + KExifData exifData; - if (!exifData.readFromFile(folder + "/" + itemName)) + + if (exifData.readFromFile(folder + "/" + itemName)) { - return false; + thumbnail = exifData.getThumbnail(); + if (!thumbnail.isNull()) + return true; } + + // Trying to get thumbnail from RAW file using dcraw parse utility. - thumbnail = exifData.getThumbnail(); + KTempFile thumbFile(QString::null, "camerarawthumb"); + thumbFile.setAutoDelete(true); + Digikam::DcrawParse rawFileParser; + + if (thumbFile.status() == 0) + { + if (rawFileParser.getThumbnail(QFile::encodeName(folder + "/" + itemName), + QFile::encodeName(thumbFile.name())) == 0) + { + thumbnail.load(thumbFile.name()); + if (!thumbnail.isNull()) + return true; + } + } // TODO: check for thm files if we didn't manage to get thumbnail from exif - return true; + return false; } bool UMSCamera::getExif(const QString& , _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |