加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 更改Gtk.Image的各个像素

发布时间:2020-12-15 21:26:17 所属栏目:百科 来源:网络整理
导读:我试图在Gtk. Image小部件上设置单个像素.文档说明Gtk.Image的ImageProp属性返回一个Gdk.Image,它似乎可以让你编辑单个像素,但每当我使用它时它只返回null. 到目前为止,我的解决方案是从磁盘加载图像作为System.Drawing.Bitmap,编辑它,将其保存到临时文件,然
我试图在Gtk. Image小部件上设置单个像素.文档说明Gtk.Image的ImageProp属性返回一个Gdk.Image,它似乎可以让你编辑单个像素,但每当我使用它时它只返回null.

到目前为止,我的解决方案是从磁盘加载图像作为System.Drawing.Bitmap,编辑它,将其保存到临时文件,然后将其加载回Gtk.Image,但这显然不太理想.

对于

Gtk.Image image = new Gtk.Image("images/test.png");
Gdk.Image gdkImage = image.ImageProp;

为什么gdkImage总是为空?

图像本身正确加载和显示.

解决方法

虽然我之前没有GTK#或C#的经验,但基于我对Gtk& amp;我可以在网上查看,我会尝试提供一些输入.
只有在使用提到的属性从Gdk.Image创建Gtk.Image时才能获得Gtk.Image的Gdk.Image,否则您将获得null,就像您从文件中创建它或建议的那样通过从Gdk.Pixbuf创建它.在目前的情况下,您可以尝试使用Gdk.Drawable.GetImage方法从Gdk.Drawable获取Gdk.Image或使用Gdk.Image.Get方法.在上述情况下,您可以使用与Gtk.Image关联的GdkWindow作为Gdk.Drawable.为了使Gdk.Window有效,窗口小部件应该已经显示或实现.但在这两种情况下,你很可能以null结尾.
附注: GdkImage APIs are deprecated in the newer versions of Gtk,请注意在GTK#的情况下可能不是这样.
因此,使用Gdk.Pixbuf可能是个好主意.可以获取GdkPixbuf的像素并在GTK中修改相同的像素.但遗憾的是,如果是GTK# that particular property (Pixels)的Gdk.Pixbuf是以只读方式制作的.一个选项可能是使用来自Gdk.Pixbuf的 Gdk.Pixdata,它是从图像创建的,使用Gdk.Pixdata中的方法修改像素,从中创建一个Gdk.Pixbuf&将其复制回原来的Gdk.Pixbuf.不幸的是我无法确定这一点,你可以尝试一下. 或者,您可以考虑绘制到Gdk.Drawable上.有一些例子可用,其中与Gtk.Widget相关联的Gdk.Drawable(通常是Gtk.DrawingArea)在Expose Event回调中更新. 我希望所提供的信息可以为您提供一些指导.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读