[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: Thumbnail Standard, XCF reader
From: David Faure <david () mandrakesoft ! com>
Date: 2002-02-11 13:35:42
[Download RAW message or body]
On Monday 11 February 2002 14:18, Malte Starostik wrote:
> Good day,
>
> I've ported KIO::PreviewJob to comply with the Thumbnail Managing Standard
> (http://triq.net/~pearl/thumb-spec.php).
> It doesn't change any i18n strings nor the outer appearance of previews except
> that the sizes are adjusted to be nicely scalable from 128x128, which is but
> a few pixels difference.
> As it adds to the interoperability with "foreign" applications, I'd really
> like to commit this for 3.0, but not without an okay.
This sounds great to me. Interoperability is a move in the right direction ;)
If this doesn't bring in too many bugs, I think it's a "must have".
> Either case, it requires a small Qt patch that reads PNG text chunks also for
> non-progressive loading (sent to qt-bugs@, answer pending).
Ouch. How important is that ? I mean, PNG's text chunks can be useful
for the metainfo stuff, but for image previews ?
> Second, this is a new feature, so I guess it has to wait for 3.1, but I'll
> dare asking anyway ;-)
> My harddisk contains a small kimageio plugin to read XCF files, at least RGB
> and RGBA ones (via libxcf,
> http://www.informatik.uni-oldenburg.de/~pearl/gnome/libxcf.html). Transparent
> backgrounds don't work, still it provides basic XCF-thumbnail capability ;-)
Hehe, tackat asked you too ? ;)
For info, I wrapped up a very basic one, based on xcftopnm and pnmtopng...
--- imagecreator.cpp 2001/10/01 20:47:41 1.8
+++ imagecreator.cpp 2002/02/11 13:32:40
@@ -25,6 +25,10 @@
#include <qimage.h>
#include <kimageio.h>
+#include <ktempfile.h>
+#include <kstandarddirs.h>
+#include <kprocess.h>
+#include <kdebug.h>
#include "imagecreator.h"
@@ -39,8 +43,26 @@ extern "C"
bool ImageCreator::create(const QString &path, int, int, QImage &img)
{
+ QString pathOk( path );
+ if ( path.endsWith(".xcf" ) ) // TODO more complete check of whether QImage \
supports it + {
+ // We need those two
+ if ( KStandardDirs::findExe( "xcftopnm" ).isEmpty() )
+ kdError() << "xcftopnm not available!" << endl;
+ else if ( KStandardDirs::findExe( "pnmtopng" ).isEmpty() )
+ kdError() << "pnmtopng not available!" << endl;
+ else {
+ KTempFile tmpFilePNM;
+ tmpFilePNM.setAutoDelete(true);
+ KTempFile tmpFilePNG; // can't delete that one !
+ KShellProcess proc1;
+ proc1 << QString("xcftopnm %1 > %2 && pnmtopng %2 > \
%3").arg(path).arg(tmpFilePNM.name()).arg(tmpFilePNG.name()); + if ( \
proc1.start( KProcess::DontCare ) ) + pathOk = tmpFilePNG.name();
+ }
+ }
// create image preview
- return img.load( path );
+ return img.load( pathOk );
}
Well it's usually better to use a lib than an external program, I guess,
(being more efficient)... although... this is a bit more flexible, not requiring
anything at compilation time. It's quite slow though, is that the same
with using the lib directly ? I attributed it to the XCF format...
--
David FAURE, david@mandrakesoft.com, faure@kde.org
http://people.mandrakesoft.com/~david, http://www.konqueror.org
KDE 3.0: Konquering the Desktops
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic