MultiplyTransform() public method

public MultiplyTransform ( Matrix matrix ) : void
matrix Matrix
return void
コード例 #1
0
 public TextureBrush GetBrush(Matrix matrix)
 {
     Bitmap bmp;
     if (_context2D != null)
     {
         bmp = _context2D.GetBitmap();
     }
     else
     {
         bmp = new Bitmap(_imagePath);
     }
     WrapMode wm = WrapMode.Tile;
     switch (_repetition)
     {
         case "repeat":
             wm = WrapMode.Tile;
             break;
         case "no-repeat":
             wm = WrapMode.Clamp;
             break;
         case "repeat-x":
             wm = WrapMode.TileFlipX;
             break;
         case "repeat-y":
             wm = WrapMode.TileFlipY;
             break;
     }
     var brush = new TextureBrush(bmp, wm);
     brush.MultiplyTransform(matrix);
     return brush;
 }
コード例 #2
0
ファイル: TextureBrushTest.cs プロジェクト: nlhepler/mono
		public void MultiplyTransform_NonInvertible ()
		{
			TextureBrush t = new TextureBrush (image);
			Matrix noninvertible = new Matrix (123, 24, 82, 16, 47, 30);
			t.MultiplyTransform (noninvertible);
		}
コード例 #3
0
ファイル: XamlToys.cs プロジェクト: goutkannan/ironlab
		public static d.Brush ToGdiPlus(this ImageBrush brush, Rect bounds) {
			var img = brush.ImageSource;
			var bt = new BrushTransform(brush, bounds);
			if (bt.DegenerateBrush != null) return bt.DegenerateBrush;

			var viewbox = brush.Viewbox;
			if (brush.ViewboxUnits == BrushMappingMode.RelativeToBoundingBox)
				viewbox.Scale(img.Width, img.Height);
			var viewport = brush.Viewport;
			if (brush.ViewportUnits == BrushMappingMode.RelativeToBoundingBox)
				viewport.Transform(bt.ToAbsolute);

			var ia = new di.ImageAttributes();
			ia.SetColorMatrix(new di.ColorMatrix { Matrix33 = (float)brush.Opacity });
			var b = new d.TextureBrush(img.ToGdiPlus(), viewbox.ToGdiPlus(), ia);
			b.WrapMode = brush.TileMode.ToGdiPlus();

			b.TranslateTransform((float)viewport.X, (float)viewport.Y);
			b.ScaleTransform((float)(viewport.Width/viewbox.Width), (float)(viewport.Height/viewbox.Height));
			b.MultiplyTransform(bt.ToBrush.ToGdiPlus(), d2.MatrixOrder.Append);

			return b;
		}
コード例 #4
0
ファイル: TextureBrushTest.cs プロジェクト: nlhepler/mono
		public void MultiplyTransformOrder_Invalid ()
		{
			TextureBrush t = new TextureBrush (image);
			t.MultiplyTransform (new Matrix (), (MatrixOrder) Int32.MinValue);
		}