SvgMerge.cs 1.11 KB
Newer Older
davescriven's avatar
davescriven committed
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
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;

namespace Svg.FilterEffects
{
    public class SvgMerge : SvgFilterPrimitive
    {
        private StringCollection _mergeResults;

        public StringCollection MergeResults
        {
            get { return this._mergeResults; }
        }

        public SvgMerge(ISvgFilter owner, string input)
            : base(owner, input)
        {
            this._mergeResults = new StringCollection();
        }

        public override Bitmap Apply()
        {
            Bitmap merged = new Bitmap((int)this.Owner.Width.Value, (int)this.Owner.Height.Value); 
            Graphics mergedGraphics = Graphics.FromImage(merged);

            foreach (string resultId in this.MergeResults)
                mergedGraphics.DrawImageUnscaled(this.Owner.Results[resultId], new Point(0, 0));

            mergedGraphics.Save();
            mergedGraphics.Dispose();

            return merged;
        }
    }
}