我等待将内存中的图像(jpegs和tiffs)加载到gdk_pixbuf_loader_write()中。我有样本/测试代码加载jpegs很好,但无法显示tiff图像。 tiff图像与其他观众(侏儒等眼睛)打开很好,所以tiff是有效的;我也使用imagemagick从jpeg创建tiffs,这些也无法在我的示例代码中加载/显示。
使用tiff图像在我的示例代码上运行strace,我可以看到gdkpixbuf加载器打开了ok:
In [12]: %%timeit
df = pd.read_csv("in.csv")
ids = df.groupby(['FName', 'LName']).id.apply(list)
df.Usedid = df.apply(lambda x: int(ids[x.UsedFName, x.UsedLName][-1]), axis=1)
....:
100 loops, best of 3: 5.27 ms per loop
In [13]: %%timeit
df = pd.read_csv("in.csv")
d = dict(zip(((f, l) for f, l in zip(df["FName"], df["LName"])), df["id"]))
df["Usedid"] = [d[(f, l)] for f, l in zip(df["UsedFName"], df["UsedLName"])]
....:
1000 loops, best of 3: 1.41 ms per loop
使用tiff文件时我需要处理哪些具体内容?样本测试程序如下。
open("/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders.cache", O_RDONLY) = 7
...
open("/usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-tiff.so", O_RDONLY|O_CLOEXEC) = 7
答案 0 :(得分:0)
我正在开发一个示例,演示我们的条形码扫描仪驱动程序的应用程序。所以我也遇到了这个问题。我设法解决了这个问题,在调用' gdk_pixbuf_loader_get_pixbuf'
之前关闭pixbuffergdk_pixbuf_loader_close(loader,&error);
GdkPixbuf* pixbuf = gdk_pixbuf_loader_get_pixbuf(loader);
检查if (pixbuf == NULL ){
以避免使用空指针崩溃也是个好主意。
在' tiff'你需要调用gdk_pixbuf_loader_close,否则它将无法正常工作。 当你关闭它时,你不能再使用相同的装载机。