GetPixel() public method

public GetPixel ( int x, int y ) : Color
x int
y int
return Color
Ejemplo n.º 1
0
		internal void AddFrame (BitmapImage bitmap, double scaleFactor)
		{
			ImageFrame frame = new ImageFrame {
				Bitmap = bitmap,
				ScaleFactor = scaleFactor
			};
			frames.Add (frame);

			frame.HorizontalSections = CreateSections (frame, Enumerable.Range (1, (int)bitmap.Width - 2).Select (n => bitmap.GetPixel (n, 0)));
			frame.VerticalSections = CreateSections (frame, Enumerable.Range (1, (int)bitmap.Height - 2).Select (n => bitmap.GetPixel (0, n)));

			double padLeft = 0, padTop = 0, padRight = 0, padBottom = 0;
			var hbox = CreateSections (frame, Enumerable.Range (1, (int)bitmap.Width - 1).Select (n => bitmap.GetPixel (n, (int)bitmap.Height - 1)));
			var sec = hbox.FirstOrDefault (s => s.Mode != RenderMode.Fixed);
			if (sec != null) {
				padLeft = sec.Start;
				padRight = bitmap.Width - 2 - padLeft - sec.Size;
			}

			var vbox = CreateSections (frame, Enumerable.Range (1, (int)bitmap.Height - 1).Select (n => bitmap.GetPixel ((int)bitmap.Width - 1, n)));
			sec = vbox.FirstOrDefault (s => s.Mode != RenderMode.Fixed);
			if (sec != null) {
				padTop = sec.Start;
				padBottom = bitmap.Height - 2 - padTop - sec.Size;
			}

			Padding = new WidgetSpacing (padLeft, padTop, padRight, padBottom);

			frame.StretchableWidth = frame.HorizontalSections.Where (s => s.Mode != RenderMode.Fixed).Sum (s => s.Size);
			frame.StretchableHeight = frame.VerticalSections.Where (s => s.Mode != RenderMode.Fixed).Sum (s => s.Size);
		}
Ejemplo n.º 2
0
        internal void AddFrame(BitmapImage bitmap, double scaleFactor)
        {
            ImageFrame frame = new ImageFrame {
                Bitmap      = bitmap,
                ScaleFactor = scaleFactor
            };

            frames.Add(frame);

            frame.HorizontalSections = CreateSections(frame, Enumerable.Range(1, (int)bitmap.Width - 2).Select(n => bitmap.GetPixel(n, 0)));
            frame.VerticalSections   = CreateSections(frame, Enumerable.Range(1, (int)bitmap.Height - 2).Select(n => bitmap.GetPixel(0, n)));

            double padLeft = 0, padTop = 0, padRight = 0, padBottom = 0;
            var    hbox = CreateSections(frame, Enumerable.Range(1, (int)bitmap.Width - 1).Select(n => bitmap.GetPixel(n, (int)bitmap.Height - 1)));
            var    sec  = hbox.FirstOrDefault(s => s.Mode != RenderMode.Fixed);

            if (sec != null)
            {
                padLeft  = sec.Start;
                padRight = bitmap.Width - 2 - padLeft - sec.Size;
            }

            var vbox = CreateSections(frame, Enumerable.Range(1, (int)bitmap.Height - 1).Select(n => bitmap.GetPixel((int)bitmap.Width - 1, n)));

            sec = vbox.FirstOrDefault(s => s.Mode != RenderMode.Fixed);
            if (sec != null)
            {
                padTop    = sec.Start;
                padBottom = bitmap.Height - 2 - padTop - sec.Size;
            }

            Padding = new WidgetSpacing(padLeft, padTop, padRight, padBottom);

            frame.StretchableWidth  = frame.HorizontalSections.Where(s => s.Mode != RenderMode.Fixed).Sum(s => s.Size);
            frame.StretchableHeight = frame.VerticalSections.Where(s => s.Mode != RenderMode.Fixed).Sum(s => s.Size);
        }