首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Clutter.Image属性--从磁盘加载图像

Clutter.Image属性--从磁盘加载图像
EN

Stack Overflow用户
提问于 2013-06-06 01:49:29
回答 1查看 337关注 0票数 1

使用Javascript,以及非常糟糕的自省文档,我试图创建一个ClutterImage来替换废弃的ClutterTexture。我无法确定用于指定要为此类映像加载的文件名/uri的属性名称:

代码语言:javascript
复制
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的属性的名称无效。有谁知道我可以在哪里找到它,或者知道在ClutterImage中filename/uri属性是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 22:24:59

没有用于将纹理数据从文件加载到Clutter.Image实例的属性或函数。

您应该使用GdkPixbuf从文件、缓冲区或流中加载图像数据,然后将其放入Clutter.Image中,如下所示:

代码语言:javascript
复制
const Clutter = imports.gi.Clutter;     
const Cogl = imports.gi.Cogl;           
const GdkPixbuf = imports.gi.GdkPixbuf; 

const pixbuf = GdkPixbuf.Pixbuf.new_from_file('...');
const image = new Clutter.Image();

image.set_data(pixbuf.get_pixels(),
               pixbuf.get_has_alpha() ? Cogl.PixelFormat.RGBA_8888
                                      : Cogl.PixelFormat.RGB_888,
               pixbuf.get_width(),
               pixbuf.get_height(),
               pixbuf.get_rowstride());

这应该可以工作;如果它不能工作,那么这是一个自省问题,并且可能需要在GdkPixbuf中进行一些调整。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16946578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档