示例#1
0
文件: Resize.cs 项目: zeta1999/eithne
        public override void Work()
        {
            progress = 0;

            ICommImage socket = _in[0] as ICommImage;

            IImage[] i1 = socket.Images;
            IImage[] i2 = new IImage[i1.Length];

            for (int i = 0; i < i1.Length; i++)
            {
                Gdk.Pixbuf buf = i1[i].CreatePixbuf();

                Gdk.Pixbuf bufout = buf.ScaleSimple(i1[i].W / 2, i1[i].H / 2, mode);

                i2[i] = IImage.Create(bufout, i1[i].BPP);

                progress = (float)i / i1.Length;
            }

            _out    = new CommSocket(1);
            _out[0] = new ICommImage(i2, socket.OriginalImages, socket.Categories);

            _workdone = true;
        }
示例#2
0
        public override void Work()
        {
            progress = 0;

            if (_fl.Count == 0)
            {
                throw new PluginException(Catalog.GetString("No images in list"));
            }

            int i = 0;

            IImage[] imgarray   = new IImage[_fl.Count];
            int[]    categories = new int[_fl.Count];

            foreach (string fn in _fl)
            {
                Gdk.Pixbuf buf = new Gdk.Pixbuf(fn);

                imgarray[i]   = IImage.Create(buf, Utility.IsBW(buf) ? BPP.Grayscale : BPP.RGB);
                categories[i] = i;

                i++;

                progress = (float)i / _fl.Count;
            }

            _out    = new CommSocket(1);
            _out[0] = new ICommImage(imgarray, imgarray, categories);

            _workdone = true;
        }
示例#3
0
        public void TaskWork()
        {
            for (int i = start; i < end; i++)
            {
                Gdk.Pixbuf buf = new Gdk.Pixbuf((string)a_in[i]);

                a_out[i] = IImage.Create(buf, Utility.IsBW(buf) ? BPP.Grayscale : BPP.RGB);

                progress++;
            }
        }