由于历史原因,我们不得不同时使用Cairo和Imager。
出于某种原因,将Cairo转换为Imager并将其转换回Imager会使颜色变得奇怪。
再次转换为Imager的原因是为了在此之后与另一个Imager对象合并。
# Create a yellow fill image as Cairo object.
# And output as a png file.
my $testSurface = Cairo::ImageSurface->create(
'argb32',
$width,
$height
);
my $testContext
我使用pyCairo绘制一个表面上的移动元素。为了获得更好的效果,我尝试使用“剪辑”功能,只重绘一个更大的图像的变化部分。不幸的是,它在图像上创建了不需要的边缘。可以看到剪裁的边缘。有可能避免这种行为吗?
import math
import cairo
def draw_stuff(ctx):
""" clears background with solid black and then draws a circle"""
ctx.set_source_rgb (0, 0, 0) # Solid color
我认为正在执行一些琐碎的标准任务:我正在将(py)cairo曲面转换为PIL(low)图像。原始cairo曲面使用ARGB模式。目标PIL图像使用RGBA,即我想维护所有颜色和alpha通道。然而,在转换过程中,事情变得非常奇怪:似乎cairo将其数据存储在内部为BGRA,因此我实际上需要在转换过程中交换颜色通道,请参见这里:
import cairo
import gi
gi.require_version('Rsvg', '2.0')
from gi.repository import Rsvg
from PIL import Image
w, h =
我正在将C# .NET应用程序移植到Mono .NET,以便在OSX中执行。应用程序的一部分涉及打印图像。在.NET中相当容易,可以归结为
e.Graphics.DrawImage(img, new Rectangle(x, y, printSize.Width, printSize.Height));
在打印文档的PrintPage事件中。Mono没有完整的System.Drawing.Printing实现,因此似乎最好的方法是使用GtkSharp。我在网上找到了一些关于如何使用Gtk.PrintOperation打印文本的例子。PrintOperation有一个应该与PrintPage类似
我试图在黑色背景上以透明的方式显示png图像,在表面缓慢移动,但是很多帧都包含白色像素。(根本不应该在那里)
徽标表面的创建方式如下:
self.logo_surface = cairo.ImageSurface.create_from_png(image)
每一帧都是这样绘制的:我把它移动到一个新的位置,然后将图像缩小到15x15px。
def draw(self, ctx):
# scale image and move it to a right place
ctx.save()
ctx.translate(self.left, self.top)
首先,我们来了解一下上下文。
我正在尝试与Cairo (实际上是pycairo)建立一个Gdk (实际上是pygtk)的pixbuf。我的原始代码是这样的:
import cairo as C
import gtk.gdk as GG
FMT = C.FORMAT_ARGB32
CSP = GG.COLORSPACE_RGB
st = C.ImageSurface.format_stride_for_width(FMT, zw)
surf = C.ImageSurface(FMT, zw, zh)
c = C.Context(surf)
# draw into c here ...
p
我正在将一些图像绘制代码从Cairo转换到Quartz,我正在慢慢地取得进展,并在此过程中学习Quartz,但我遇到了图像格式的问题。
在Cairo版本中,它是这样工作的:
unsigned short *d = (unsigned short*)imageSurface->get_data();
int stride = imageSurface->get_stride() >> 1;
int height = imageHeight;
int width = imageWidth;
do {
d = *p++; // p = raw image data
基于问题,我尝试创建代码,用于重新缩放图像并将图像放置在特定位置,如下面的代码所示(例如,在本例中,图像应该显示在基础矩形上方)。然而,我似乎无法使图像出现在正确的位置(S)。
我想知道我必须改变什么,这样和才能正确定位图像。
import cairo
if not cairo.HAS_PDF_SURFACE:
raise SystemExit('cairo was not compiled with PDF support')
def draw_image(ctx, image, top, left, height, width):
""&