Clutter.Image属性 - 从磁盘中装载图像(Clutter.Image Propertie

2019-11-02 04:43发布

使用Javascript,从而显着可怕的自我描述的文档,我试图创建一个ClutterImage这是应该更换过时ClutterTexture 。 我不能确定属性名称使用指定的文件名/ URI来装载这样的图像:

const Clutter = imports.gi.Clutter;

Clutter.init(null);

let stage = new Clutter.Stage();

stage.connect("destroy", Clutter.main_quit);
stage.title = "Test";

stage.set_background_color(new Clutter.Color({
    red  : 0,
    blue : 128,
    green : 64,
    alpha : 255
}));

let img = new Clutter.Image({
    uri : 'some-image.jpg'
});

stage.add_actor(img);
Clutter.main();

目前我的错误是: Error: No property uri on this GObject ClutterImage当然,这意味着我有一个属性我试图使用的URI无效的名称。 有谁知道在哪里我可以看看这件事,或者知道文件名/ uri属性被称为ClutterImage S'

Answer 1:

没有物业或功能从文件加载纹理数据到Clutter.Image实例。

你应该使用Gdk.Pixbuf从文件,缓冲,或流加载图像数据,然后把它放在一个Clutter.Image喜欢的东西:

let pixbuf = Gdk.Pixbuf.new_from_file('...');
let image = new Clutter.Image();
image.set_data(pixbuf.get_pixels(),
               pixbuf.has_alpha() ? Cogl.PixelFormat.RGBA_8888
                                  : Cogl.PixelFormat.RGB_888,
               pixbuf.get_width(),
               pixbuf.get_height(),
               pixbuf.get_rowstride());

这应该工作; 如果没有,那么这是一个反省的问题,可能需要在GdkPixbuf一些调整。



文章来源: Clutter.Image Properties — Loading an image from disk