有没有办法通过联合,差异和交叉等布尔运算将两条路径组合在一起来在开罗建立路径?我正在研究一个使用Cairo进行渲染的矢量图形应用程序,并希望让我的用户能够以这种方式将路径组合在一起,但我找不到在开罗这样做的方法.
我可以使用一个简单的C++库建议指定大小的图像,具有固定的rgb颜色值或理想支持渐变.
需要在Windows上工作,理想情况下也不需要在OS X上工作.
我找到了开罗,但只是想知道是否还有其他东西,因为它看起来很简单.
我想通过名称呈现svg文件的一部分,但对于我的生活,我无法弄清楚如何这样做(使用python + gtk).
这是有问题的svg文件:http://david.bellot.free.fr/svg-cards/files/SVG-cards-2.0.1.tar.gz(更新:此文件不再存在,但您可以跟踪它在http://svg-cards.sourceforge.net/)
在他的网站上,大卫说:
您可以通过将文件渲染到像素图上并手动剪裁每张卡片或通过DOM界面使用卡片名称来绘制卡片.所有卡都嵌入到SVG组中.
我不知道DOM接口意味着什么.我做了一些搜索,我发现的最好的结果似乎适合我想要做的是:
QSvgRenderer *renderer = new QSvgRenderer(QLatin1String("SvgCardDeck.svg"));
QGraphicsSvgItem *black = new QGraphicsSvgItem();
QGraphicsSvgItem *red = new QGraphicsSvgItem();
black->setSharedRenderer(renderer);
black->setElementId(QLatin1String("black_joker"));
red->setSharedRenderer(renderer);
red->setElementId(QLatin1String("red_joker"));
Run Code Online (Sandbox Code Playgroud)
但请注意,它适用于Qt,甚至不是用python编写的.
这是我到目前为止:
#!/usr/bin/env python
from __future__ import absolute_import
import cairo
import gtk
import rsvg
from xml import xpath
from xml.dom import minidom
window = gtk.Window()
window.set_title("Foo")
window.set_size_request(256, 256)
window.set_property("resizable", False)
window.set_position(gtk.WIN_POS_CENTER)
window.connect("destroy", gtk.main_quit)
window.show()
document = minidom.parse("cards.svg")
element = xpath.Evaluate("//*[@id='1_club']", document)[0]
xml = element.toxml()
svg = …Run Code Online (Sandbox Code Playgroud) 我过去在学习开罗时已经过了一些镜头,但总是转向其他一些图形库.我的问题是我找不到一个很好的教程,可以为我的表面提供一个简单的显示.我总是最终通过GTK或QT文档挖掘与我想做的事情无关的事情.我想学习开罗,而不是大规模的OO架构.
什么是裸骨包装,给我一个带有开罗画布的跨平台窗口?
我似乎无法使用gintrospection让cairo区域在内部工作.
例如
from gi.repository import cairo
reg = cairo.Region()
Run Code Online (Sandbox Code Playgroud)
会给我的
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
MemoryError
Run Code Online (Sandbox Code Playgroud)
并试图从Gdk.get_clip_region()获得一个区域将给我
return info.invoke(*args)
TypeError: Couldn't find conversion for foreign struct 'cairo.Region'
Run Code Online (Sandbox Code Playgroud)
我错过了什么明显的事情?我无法找到一种方法来使用它,并且无法想象你需要的区域看起来像一个简单的结构.我不知道为什么gdk找不到cairo类型,并且我不知道我是否应该以某种方式显示它.
我试图在Python 3.2中使用rsvg,但我一直收到导入错误.我已经安装了所有librsvg软件包和cairo.我无法在网上找到任何其他安装工具来实现它.我听说自2005年以来rsvg模块还没有更新,所以它只是与Python 3.2不兼容,还是我还可以尝试安装它?或者,如果rsvg不起作用,是否有人对通过Python显示SVG文件的简单方法有任何建议(基本上只显示图像)?
编辑:我得到的错误是:'ImportError:没有名为rsvg的模块'
python2中不显示此错误
提前致谢
我发现有人在Pango Cairo上移植了Android NDK(博客文章,源代码)。但是,我在编译他的示例项目方面还没有成功。有没有人设法做到这一点,并且可以告诉我我做错了什么?
到目前为止,这是我尝试过的:
我收到以下错误:
checking for arm-linux-eabi-gcc... arm-linux-androideabi-gcc --sysroot /cygdrive/f/android-ndk-r8b/platforms/android-9/arch-arm -fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -mfpu=vfp …Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 12.04平台上安装Pango-1.30时遇到了问题.在./configure步骤中,我收到一条消息"无法启用任何Freetype,X11,Cairo或Win32后端.必须至少有一个后端来构建Pango".但是,我已经构建并安装了Freetype和X11,它们位于/ usr/bin中.如何通知./configure从哪里获取它们?
谢谢,Mark Allyn
我想用c/c ++编写一个简单的文本编辑应用程序(主要用于源代码编辑),具有以下规范:
在写作之前,我在网上做了一个研究和一些搜索,但我需要一些建议来更好地选择:
我放弃了QT,我不喜欢如何使用它.
我想念使用库而不是另一个库?那支持怎么样?在某些情况下,我不清楚每个图书馆为我提供的内容以及我为实现目标所需做的工作(例如,添加到图形项目的其他图层).
图形堆栈组织的一个例子也帮助我选择了正确的工具.我必须选择适当的平衡来定制和部署速度.例如:SDL提供的比开罗或Skia少?等等.(从靠近操作系统的层开始)
我正在尝试使用嵌入的svg图像生成图表.如果我使用常规svg命令运行graphviz,则仅引用图像.
dot -Tsvg diagram.dot -O
在这里它说要构建,-Tsvg:cairo但我得到以下内容:
dot -Tsvg:cairo diagram.dot -O
Warning: No loadimage plugin for "svg:cairo"
Run Code Online (Sandbox Code Playgroud)
我安装了lib cairo,所以我不知道我错过了什么.
我使用的是ubuntu 12.04 LTS,我在askubuntu中问了同样的问题,但那里没有任何graphviz标签.