using System; using System.Drawing; using Gtk; using Gdk; class OwnWindow : Gtk.Window { public OwnWindow() : base("Попіксельно") { Pixbuf pixbuf1=null; try { pixbuf1 = new Pixbuf("gryvna.png");} catch { Console.WriteLine("Файл gryvna.png не виявлено");} Bitmap bm = new Bitmap("gryvna.png"); for (int j = 0; j < bm.Width / 2; j++) for (int k = 0; k < bm.Height; k++) { System.Drawing.Color c = bm.GetPixel(j, k); System.Drawing.Color cNew = System.Drawing.Color.FromArgb(c.R, c.G, 2*j*c.B/bm.Width); bm.SetPixel(j, k, cNew); } bm.Save("tmp.png"); Pixbuf pixbuf2 = new Pixbuf("tmp.png"); Gtk.Image im1 = new Gtk.Image(pixbuf1); Gtk.Image im2 = new Gtk.Image(pixbuf2); Resize(bm.Width, 2 * bm.Height); VBox vb = new VBox(true, 0); // Розташування по вертикалі vb.PackStart(im1, true, true, 0);// оригінальне зображення vb.PackStart(im2, true, true, 0);// опрацьоване зображення Add(vb); // з лінійним зростанням інтенсивності блакитного кольору ShowAll(); // від лівого краю до середини зображення. } protected override bool OnDeleteEvent(Event e) { Application.Quit(); return true; } public static void Main() { Application.Init(); OwnWindow w = new OwnWindow(); Application.Run(); } }