public TranslateTransform ( float dx, float dy ) : void | ||
dx | float | |
dy | float | |
return | void |
public static byte[] CreateShadowImage( ShadowImageType imageType, int Width, int Height, Color ShadowColor, Color BackColor, ImageFormat Format) { MemoryStream memStream = new MemoryStream(); Bitmap bmpPaint = new Bitmap(Width,Height); Graphics grph = Graphics.FromImage(bmpPaint); if ( imageType == ShadowImageType.Blank ) { SolidBrush brush; brush = new SolidBrush(BackColor); grph.FillRectangle(brush,0,0,Width,Height); } else if ( imageType == ShadowImageType.Top || imageType == ShadowImageType.Bottom || imageType == ShadowImageType.Left || imageType == ShadowImageType.Right ) { int angle=0; switch( imageType ) { case ShadowImageType.Top: angle = 270; break; case ShadowImageType.Right: angle = 0; break; case ShadowImageType.Bottom: angle = 90; break; case ShadowImageType.Left: angle = 180; break; } LinearGradientBrush brush; brush = new LinearGradientBrush( new Rectangle(0,0,Width,Height), ShadowColor, BackColor, angle,true); brush.Blend = shadowBlendScaleLinear; grph.FillRectangle(brush,0,0,Width,Height); } else { GraphicsPath path = new GraphicsPath(); path.AddEllipse(0, 0, Width*2,Height*2); PathGradientBrush brush = new PathGradientBrush(path); brush.CenterColor = ShadowColor; Color[] colors = {BackColor}; brush.SurroundColors = colors; if ( imageType == ShadowImageType.BottomRight ) { brush.TranslateTransform(-Width,-Height); } else if ( imageType == ShadowImageType.TopRight ) { brush.TranslateTransform(-Width,0); } else if ( imageType == ShadowImageType.BottomLeft ) { brush.TranslateTransform(0,-Height); } brush.CenterPoint=new PointF(Width,Height); brush.Blend = shadowBlendScaleRadial; grph.FillRectangle(new SolidBrush(BackColor),0, 0, Width, Height); grph.FillRectangle(brush, 0, 0, Width, Height); } bmpPaint.Save(memStream,Format); return memStream.GetBuffer(); }
public void Transform_Operations () { using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.Clamp)) { Matrix clone = pgb.Transform.Clone (); Matrix mul = clone.Clone (); clone.Multiply (mul, MatrixOrder.Append); pgb.MultiplyTransform (mul, MatrixOrder.Append); Assert.AreEqual (pgb.Transform, clone, "Multiply/Append"); clone.Multiply (mul, MatrixOrder.Prepend); pgb.MultiplyTransform (mul, MatrixOrder.Prepend); Assert.AreEqual (pgb.Transform, clone, "Multiply/Prepend"); clone.Rotate (45, MatrixOrder.Append); pgb.RotateTransform (45, MatrixOrder.Append); Assert.AreEqual (pgb.Transform, clone, "Rotate/Append"); clone.Rotate (45, MatrixOrder.Prepend); pgb.RotateTransform (45, MatrixOrder.Prepend); Assert.AreEqual (pgb.Transform, clone, "Rotate/Prepend"); clone.Scale (0.25f, 2, MatrixOrder.Append); pgb.ScaleTransform (0.25f, 2, MatrixOrder.Append); Assert.AreEqual (pgb.Transform, clone, "Scale/Append"); clone.Scale (0.25f, 2, MatrixOrder.Prepend); pgb.ScaleTransform (0.25f, 2, MatrixOrder.Prepend); Assert.AreEqual (pgb.Transform, clone, "Scale/Prepend"); clone.Translate (10, 20, MatrixOrder.Append); pgb.TranslateTransform (10, 20, MatrixOrder.Append); Assert.AreEqual (pgb.Transform, clone, "Translate/Append"); clone.Translate (30, 40, MatrixOrder.Prepend); pgb.TranslateTransform (30, 40, MatrixOrder.Prepend); Assert.AreEqual (pgb.Transform, clone, "Translate/Prepend"); clone.Reset (); pgb.ResetTransform (); Assert.AreEqual (pgb.Transform, clone, "Reset"); } }
public void TranslateTransform () { using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.Clamp)) { pgb.TranslateTransform (1, 1); float[] elements = pgb.Transform.Elements; Assert.AreEqual (1, elements[0], 0.1, "matrix.0"); Assert.AreEqual (0, elements[1], 0.1, "matrix.1"); Assert.AreEqual (0, elements[2], 0.1, "matrix.2"); Assert.AreEqual (1, elements[3], 0.1, "matrix.3"); Assert.AreEqual (1, elements[4], 0.1, "matrix.4"); Assert.AreEqual (1, elements[5], 0.1, "matrix.5"); pgb.TranslateTransform (-1, -1); // strangely lgb.Transform.IsIdentity is false elements = pgb.Transform.Elements; Assert.AreEqual (1, elements[0], 0.1, "revert.matrix.0"); Assert.AreEqual (0, elements[1], 0.1, "revert.matrix.1"); Assert.AreEqual (0, elements[2], 0.1, "revert.matrix.2"); Assert.AreEqual (1, elements[3], 0.1, "revert.matrix.3"); Assert.AreEqual (0, elements[4], 0.1, "revert.matrix.4"); Assert.AreEqual (0, elements[5], 0.1, "revert.matrix.5"); } }
public void TranslateTransform_InvalidOrder () { using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.Clamp)) { pgb.TranslateTransform (1, 1, (MatrixOrder) Int32.MinValue); } }
public void Rectangle () { using (PathGradientBrush pgb = new PathGradientBrush (pts_2f, WrapMode.TileFlipXY)) { CheckDefaultRectangle ("Original", pgb.Rectangle); pgb.MultiplyTransform (new Matrix (2, 0, 0, 2, 2, 2)); CheckDefaultRectangle ("Multiply", pgb.Rectangle); pgb.ResetTransform (); CheckDefaultRectangle ("Reset", pgb.Rectangle); pgb.RotateTransform (90); CheckDefaultRectangle ("Rotate", pgb.Rectangle); pgb.ScaleTransform (4, 0.25f); CheckDefaultRectangle ("Scale", pgb.Rectangle); pgb.TranslateTransform (-10, -20); CheckDefaultRectangle ("Translate", pgb.Rectangle); pgb.SetBlendTriangularShape (0.5f); CheckDefaultRectangle ("SetBlendTriangularShape", pgb.Rectangle); pgb.SetSigmaBellShape (0.5f); CheckDefaultRectangle ("SetSigmaBellShape", pgb.Rectangle); } }