File: simpleanim.rb

package info (click to toggle)
ruby-gnome 4.2.2-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 26,648 kB
  • sloc: ruby: 67,701; ansic: 67,431; xml: 350; sh: 201; cpp: 45; makefile: 42
file content (40 lines) | stat: -rw-r--r-- 1,196 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env ruby
=begin
  simpleanim.rb - Ruby/GdkPixbuf sample script for Gdk::PixbufSimpleAnim.

  Inspired by http://mail.gnome.org/archives/gtk-perl-list/2005-September/msg00110.html

  Copyright (c) 2002-2020 Ruby-GNOME Project Team
  This program is licenced under the same licence as Ruby-GNOME.

  $Id: simpleanim.rb,v 1.2 2006/06/17 14:38:08 mutoh Exp $
=end

require 'gtk3'

$stdout.sync = true

simple_anim = GdkPixbuf::PixbufSimpleAnim.new(64, 64, 24)
store_pixels = []

print 'generating frames'
for red in 0 .. 126
  store_pixels << pixels = ([ 4*(63-red).abs, 0, 0 ] * (64*64)).pack('C*')
  pixbuf = GdkPixbuf::Pixbuf.new(:data => pixels,
                                 :colorspace => :rgb,
                                 :has_alpha =>false,
                                 :bits_per_sample => 8,
                                 :width => 64,
                                 :height => 64,
                                 :row_stride => 64*3)
  simple_anim.add_frame(pixbuf)
  print '.'
end
puts 'done'

window = Gtk::Window.new
image = Gtk::Image.new(animation: simple_anim)
window.add(image)
window.show_all
window.signal_connect('destroy') { Gtk.main_quit }
Gtk.main