问题标签 [gdkpixbuf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
296 浏览

c++ - /bin/sh: 1: gdk-pixbuf-config: 未找到

我正在尝试编译基于 gdk-pixbuf 的 C/C++ 程序,在编译过程中出现错误“/bin/sh: 1: gdk-pixbuf-config: not found”

我目前收到以下包裹,请指导,我缺少什么?我正在使用 Ubuntu 12.04,32 位

0 投票
2 回答
6551 浏览

python - 如何使用 Gdk3 从文件创建 PixBuf?

环境:Python3

图书馆:

我想从文件创建一个“pixbuf”,但该方法在 Gdk3 中不再存在。

结果:AttributeError:'gi.repository.Gdk'对象没有属性'pixbuf_new_from_file'

有人知道如何用 Gdk3 做到这一点吗?似乎Gdk3只支持这些方法:

更新

自己发现了:

0 投票
1 回答
3219 浏览

c++ - 在 Gdk::Pixbuf 上获取像素值,使用 Gdk::Cairo 设置像素值

我正在使用 a在 C++Gdk::Pixbuf中显示图像:Gdk::Cairo

这张图片是黑白的,我需要带出一些亮度高于某个阈值的像素。为此,我想为这些像素着色。

首先,我不知道(我在网上找不到)如何获取我的 Pixbuf 图像的某个像素的亮度。

其次,除了绘制一条长度为 1 的线(这是一种丑陋的解决方案)之外,我没有找到另一种绘制像素的方法。

你能帮我解决这个问题吗?如果可能的话,我想避免改变图书馆......

谢谢

0 投票
1 回答
196 浏览

c - 什么是 GTK“渲染细节”?

我在将 C 程序中的窗口图标设置为股票图标时遇到了暂时的困难,我几乎要问如何做到这一点,但后来我创建了我需要的 GdkPixbuf,如下所示:

文档将最后一个参数描述为“渲染细节以传递给主题引擎。[allow-none]”(此处)。由于我不知道这可能是什么合适的值,所以我将其设置为 NULL 并希望它会起作用。它确实有效,但现在我想知道为什么。

这个值应该是多少?如果我将其保留为 NULL,是否有任何可能的影响?

0 投票
1 回答
504 浏览

gtk - Clutter-vala 如何加载纹理

我正在尝试将文件夹图标加载为纹理。我现在已经尝试了几乎所有东西,但由于某种原因我无法让它工作

我认为这个线程正是我正在寻找的,但它太先进了。我现在想要它简单。

由于某种原因,我无法让它工作/翻译它。

这是我最终得到的代码。不知道现在该怎么办。

0 投票
2 回答
1660 浏览

c++ - Gdk::Pixbuf 不加载图片

我正在尝试将 *.jpg 图像加载到 Gdk:: Pixbuf 中,但它失败并一直告诉我:解释 JPEG 图像文件时出错(错误的 JPEG 库版本:库为 62,调用者期望为 80)

唯一安装的版本是 libjpeg8 和 libjpeg8-dev

我在加载.png 图像时遇到了类似的问题:GdkPixbuf-WARNING * : Bug!gdk-pixbuf loader 'png' 没有在失败时设置错误。PixbufError:无法加载图像'.../Test.png':原因未知,可能是图像文件损坏

libpng 版本是 12-dev 和 12-0

关于如何解决这个问题的任何想法?

0 投票
1 回答
118 浏览

c# - 如何将 3D 变换应用于图像?

我正在尝试(在代码中)获取图像文件并对其应用三维变换(想想:透视)。

我正在处理的应用程序是用 C# 编写的,我已经查看了有关倾斜/旋转图像的MSDN 信息。不幸的是,这还不够控制——我需要 GIMP/Photoshop 提供的“透视”工具提供的功能。

我已经在使用 P/Invoke 来调用以下 C++ DLL(将它们从 GIMP /bin 文件夹中取出)以获取其他图像功能:

这种方法似乎很适合我需要做的事情(光栅化矢量图像),并且它将所有代码保留在应用程序中(我宁愿不必走命令行路线——我知道 GIMP 可以编写脚本,但这是目前的最后手段)。

我想找出一种方法来使用这些库(libgdk-pixbuf-2.0、libgobject)和其他库(如果需要)来完成我需要做的三维转换。

有人有什么建议吗?我对其他想法持开放态度,但真的很喜欢使用这些开源库来完成工作的想法

0 投票
1 回答
379 浏览

python - Gtk3 中的 pixbuf.subpixbuf 替代品

我有一个 GTK+ 2 应用程序,我正在移植到 GTK+ 3。
我有一个功能可以剪切图像的某些部分 -

pb是传递给函数的 pixbuf。返回 scaled_pb。
所以我的问题是 GTK3 中 pb.subpixbuf 的替代品是什么?我的应用程序现在没有运行,它告诉 Pixbuf 对象没有 subpixbuf 属性。

先感谢您。

0 投票
1 回答
1384 浏览

c# - 如何使用 P/Invoke 从 64 位 C# 应用程序调用 64 位 C++ DLL?

我正在处理一些涉及使用 P/Invoke 从几个 C++ DLL 调用非托管函数的代码。我希望能够将应用程序构建为 32 位或 64 位。

目前,它仅适用于 x86。

我有每个引用的 C++ DLL 的 32 位和 64 位副本,并且正在使用以下代码来更改 DllDirectory,具体取决于应用程序是构建为 x86 还是 x64(/lib/x64 包含 64 位 dll,/lib/ x86 包含 32 位的):

我的其余非托管 C++ 函数定义如下:

实际使用这些函数的代码如下所示:

正如我所提到的,在我的本地机器(Windows 7 x64)上以 x86 运行应用程序时一切正常。但是,当我将其编译为 x64 应用程序时,在调用 gdk_pixbuf_save() 时会收到“AccessViolationException”。

有任何想法吗?我对互操作代码比较陌生,但我认为这可能与 IntPtr 变量如何发送到非托管代码或从非托管代码发送有关?但是为什么从 x86 到 x64 不同呢?

0 投票
1 回答
336 浏览

pinvoke - 为什么不推荐使用的“rsvg_pixbuf_from_file_at_size”比不推荐使用的方法(开罗)更快/更有效?

我正在使用 C# 和 P/Invoke 来访问 GDK 库。我的目标是将一组 SVG 文件转换为光栅图像(特别是 png),并且使用 GDK 库似乎是最可靠/准确的。

在阅读了一些 Gnome/Cairo 文档之后,我发现了两种基本方法来实现这一点。其中一种方法使用不推荐使用的函数,而另一种则不使用。

第一种方法已被弃用,但可以说更简单/直接,基本上看起来像这样:

第二种方法并未被弃用,它涉及设置 Cairo Surface,渲染它,然后将其保存到文件中。它看起来基本上是这样的:

这两种方法似乎都有效 - 它们生成正确的光栅图像输出(尽管当我尝试并行执行一堆操作时,“Cairo 方式”存在一些错误 - 我最终会耗尽内存)。

我的问题是:为什么旧的/不推荐使用的方式(rsvg_pixbuf_from_file_at_size明显快于新的/开罗方式?我的测试显示第一种方法更快(一个文件/多个文件,标准 C# ForEach/Parallel.ForEach)。

例如,对于 16 个输入文件(输出尺寸为 6000x4200)并且没有并行处理,第一种方法需要大约 2:15.89 秒。第二种方法大约需要 2:37.95。使用并行处理(Parallel.Foreach 调用我的 P/Invoke 代码),结果是相似的——MaxDegreesOfParallelism设置为默认值时,不推荐使用的方法需要 30.7 秒,而 Cairo 方法需要 36.95 秒。

开罗似乎也使用了更多的内存。此外,除了简单地为每次转换使用更多资源之外,Cairo 似乎也不知道如何避免使用我所有的 RAM。例如,如果我将输入文件的数量从 16 个增加到 720 个,并使用 Parallel.ForEach 循环,我最终会得到 0 MB 的可用 RAM,并且系统会停止运行(最终,调试进程退出,我的系统又回来了……但它锁定了一分钟左右)。

我的问题的简单答案是只使用不推荐使用的方法,但为什么不推荐使用它?开罗方法在任何方面都更好吗?

如果有人想查看更多我的代码,请告诉我,我会添加它。我试图将我发布的代码缩减为相关位(实际的 P/Invoke 代码,而不是调用它的 C# 代码)。