Pixbuf.new_from_data из bytearray - PullRequest
0 голосов
/ 25 мая 2020

В этом примере должен отображаться синий квадрат 4x4. К сожалению, у меня черный. Как следует сформировать этот массив байтов, чтобы Pixbuf.new_from_data работал правильно?
Спасибо.

import gi

gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GdkPixbuf

class MyWindow(Gtk.Window):
  def __init__(self):
    Gtk.Window.__init__(self)

    w, h = 4, 4

    data1 = bytearray(b'\
\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\
\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\
\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\
\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff')

    pb = GdkPixbuf.Pixbuf.new_from_data(data1, GdkPixbuf.Colorspace.RGB, False, 8, w, h, w*3)
    img = Gtk.Image()
    img.set_from_pixbuf(pb)

    fixed = Gtk.Fixed()
    fixed.put(img, 0, 0)
    self.add(fixed)
    self.set_border_width(20)

win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
...