Clutter.Image 属性——从磁盘加载图像
Posted
技术标签:
【中文标题】Clutter.Image 属性——从磁盘加载图像【英文标题】:Clutter.Image Properties -- Loading an image from disk 【发布时间】:2013-06-05 17:49:29 【问题描述】:使用 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 的属性的名称无效。有谁知道我在哪里可以查到这个,或者知道ClutterImage
s 中的文件名/uri 属性是什么?
【问题讨论】:
【参考方案1】:没有用于将纹理数据从文件加载到Clutter.Image
实例的属性或函数。
您应该使用GdkPixbuf
从文件、缓冲区或流中加载图像数据,然后将其放入Clutter.Image
中,例如:
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
中进行一些调整。
【讨论】:
我收到imports.gi.Gdk.Pixbuf is undefined
。我错过了什么吗? (Ubuntu 20.04)
GdkPixbuf 是一个单独的模块;你想要:imports.gi.GdkPixbuf
.以上是关于Clutter.Image 属性——从磁盘加载图像的主要内容,如果未能解决你的问题,请参考以下文章
asp.net core 2 从本地磁盘驱动器加载和显示图像
无法将图像从 PARSE 加载到 PFTableViewCell 的 imageView 属性中
有没有办法将图像从本地存储加载到 Flutter 中 CircleAvatar 小部件的 backgroundImage 属性?