2016-01-17 86 views
0

来自相机的照片包含缩略图和照片本身。缩略图由相机创建并用于在不加载完整图像的情况下快速浏览。将图像文件中的缩略图加载到pixbuf中

我想模仿与C和GTK + 2

工具如exiftooldcraw可以提取缩略图到一个新的文件这样的行为。不过,我想直接将缩略图加载到GdkPixbuf中。

如果有任何功能,提取的照片已经存在的缩略图并将其加载到GdkPixbuf

+0

我不明白你的问题,你得到从图像文件中的略图GTK代码? –

+0

“GTK代码中的图像文件”? – Reza

+0

不,我不明白。你如何构建你的gtk应用程序? –

回答

1

方法有很多,但不是正式™之一。

如果你不想迷失在EXIF的细节中,你可以利用eog(GNOME之眼):在木头下它主要是a C library

将您的应用程序到库和EogImage对象调用eog_thumbnail_load

+0

如何链接到此库? – Reza

+0

在我的系统上,我会使用'gcc myapp.c -L/usr/lib/eog -leog $(pkg-config --cflags --libs eog)'。 – ntd

+0

奇怪的是,在我的电脑上出现“无法找到-leog”的错误。我已经安装了所有与EOG相关的软件包。 – Reza

1

没有

图片加载是通过pixbuf的装载机所以如果你有一个NEF或CR2,你必须提供一个加载器来处理这些类型的文件

我已经实现的方式,这是对的建立自己的pixbuf加载器,并使用exiv2获得嵌入式预览图像(TIF或JPG格式),然后让标准的pixbuf装载机加载

+0

这将是我的最后手段,因为它会产生延迟和大量的磁盘写入。 Exiv2使用libexiv2这是一个C++库。有一个名为gexiv2的C包装器,但它没有附带文档。 – Reza

+0

“产生大量的磁盘写入” - 我不记得在strace输出中看到了这个。以下是使用exiv2的gdk pixbuf加载器的代码 - 它不喜欢从RAW文件加载tif,但对于NEF和CR2直接在相机外,它工作正常:[link] http://whatdoineed2do.blogspot .com/2016/02/custom-gdkpixbufloader-to-handle.html – Ray

+0

那么如果你想浏览一下你已经拍摄的200张照片,那么200张JPG必须被提取并写入磁盘。感谢您的链接,我会看看。 – Reza

相关问题