public void Transform_Operations () { LinearGradientBrush lgb = new LinearGradientBrush (rect, c1, c2, 45f); Matrix clone = lgb.Transform.Clone (); Matrix mul = clone.Clone (); clone.Multiply (mul, MatrixOrder.Append); lgb.MultiplyTransform (mul, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Multiply/Append"); clone.Multiply (mul, MatrixOrder.Prepend); lgb.MultiplyTransform (mul, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Multiply/Prepend"); clone.Rotate (45, MatrixOrder.Append); lgb.RotateTransform (45, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Rotate/Append"); clone.Rotate (45, MatrixOrder.Prepend); lgb.RotateTransform (45, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Rotate/Prepend"); clone.Scale (0.25f, 2, MatrixOrder.Append); lgb.ScaleTransform (0.25f, 2, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Scale/Append"); clone.Scale (0.25f, 2, MatrixOrder.Prepend); lgb.ScaleTransform (0.25f, 2, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Scale/Prepend"); clone.Translate (10, 20, MatrixOrder.Append); lgb.TranslateTransform (10, 20, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Translate/Append"); clone.Translate (30, 40, MatrixOrder.Prepend); lgb.TranslateTransform (30, 40, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Translate/Prepend"); clone.Reset (); lgb.ResetTransform (); Assert.AreEqual (lgb.Transform, clone, "Reset"); }
public void Transform_Operations_OnScalableAngle () { LinearGradientBrush lgb = new LinearGradientBrush (rect, c1, c2, 360f, true); Matrix clone = lgb.Transform.Clone (); Matrix mul = clone.Clone (); Matrix m = new Matrix (); m.Scale (2, 1); m.Translate (rect.Width, rect.Height); m.Rotate (30f); clone.Multiply (mul, MatrixOrder.Append); lgb.MultiplyTransform (mul, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Multiply/Append"); clone.Multiply (mul, MatrixOrder.Prepend); lgb.MultiplyTransform (mul, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Multiply/Prepend"); clone.Rotate (45, MatrixOrder.Append); lgb.RotateTransform (45, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Rotate/Append"); clone.Rotate (45, MatrixOrder.Prepend); lgb.RotateTransform (45, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Rotate/Prepend"); clone.Scale (0.25f, 2, MatrixOrder.Append); lgb.ScaleTransform (0.25f, 2, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Scale/Append"); clone.Scale (0.25f, 2, MatrixOrder.Prepend); lgb.ScaleTransform (0.25f, 2, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Scale/Prepend"); clone.Translate (10, 20, MatrixOrder.Append); lgb.TranslateTransform (10, 20, MatrixOrder.Append); Assert.AreEqual (lgb.Transform, clone, "Translate/Append"); clone.Translate (30, 40, MatrixOrder.Prepend); lgb.TranslateTransform (30, 40, MatrixOrder.Prepend); Assert.AreEqual (lgb.Transform, clone, "Translate/Prepend"); clone.Reset (); lgb.ResetTransform (); Assert.AreEqual (lgb.Transform, clone, "Reset"); }
public void ResetTransform () { LinearGradientBrush lgb = new LinearGradientBrush (pt1, pt2, c1, c2); Assert.IsFalse (lgb.Transform.IsIdentity, "Transform.IsIdentity"); lgb.ResetTransform (); Assert.IsTrue (lgb.Transform.IsIdentity, "Reset.IsIdentity"); }
public void Rectangle () { LinearGradientBrush lgb = new LinearGradientBrush (rect, c1, c2, 0f); CheckDefaultRectangle ("Original", lgb.Rectangle); lgb.MultiplyTransform (new Matrix (2, 0, 0, 2, 2, 2)); CheckDefaultRectangle ("Multiply", lgb.Rectangle); lgb.ResetTransform (); CheckDefaultRectangle ("Reset", lgb.Rectangle); lgb.RotateTransform (90); CheckDefaultRectangle ("Rotate", lgb.Rectangle); lgb.ScaleTransform (4, 0.25f); CheckDefaultRectangle ("Scale", lgb.Rectangle); lgb.TranslateTransform (-10, -20); CheckDefaultRectangle ("Translate", lgb.Rectangle); lgb.SetBlendTriangularShape (0.5f); CheckDefaultRectangle ("SetBlendTriangularShape", lgb.Rectangle); lgb.SetSigmaBellShape (0.5f); CheckDefaultRectangle ("SetSigmaBellShape", lgb.Rectangle); }
public static Bitmap DrawShadowBitmap(int width, int height, int borderRadius, int blur, int spread, Color color) { int ex = blur + spread; int w = width + ex * 2; int h = height + ex * 2; int solidW = width + spread * 2; int solidH = height + spread * 2; var bitmap = new Bitmap(w, h); Graphics g = Graphics.FromImage(bitmap); // fill background g.FillRectangle(new SolidBrush(color) , blur, blur, width + spread * 2 + 1, height + spread * 2 + 1); // +1 to fill the gap if (blur > 0) { // four dir gradiant { // left var brush = new LinearGradientBrush(new Point(0, 0), new Point(blur, 0), Color.Transparent, color); // will thorw ArgumentException // brush.WrapMode = WrapMode.Clamp; g.FillRectangle(brush, 0, blur, blur, solidH); // up brush.RotateTransform(90); g.FillRectangle(brush, blur, 0, solidW, blur); // right // make sure parttern is currect brush.ResetTransform(); brush.TranslateTransform(w % blur, h % blur); brush.RotateTransform(180); g.FillRectangle(brush, w - blur, blur, blur, solidH); // down brush.RotateTransform(90); g.FillRectangle(brush, blur, h - blur, solidW, blur); } // four corner { var gp = new GraphicsPath(); //gp.AddPie(0,0,blur*2,blur*2, 180, 90); gp.AddEllipse(0, 0, blur * 2, blur * 2); var pgb = new PathGradientBrush(gp); pgb.CenterColor = color; pgb.SurroundColors = new[] { Color.Transparent }; pgb.CenterPoint = new Point(blur, blur); // lt g.FillPie(pgb, 0, 0, blur * 2, blur * 2, 180, 90); // rt var matrix = new Matrix(); matrix.Translate(w - blur * 2, 0); pgb.Transform = matrix; //pgb.Transform.Translate(w-blur*2, 0); g.FillPie(pgb, w - blur * 2, 0, blur * 2, blur * 2, 270, 90); // rb matrix.Translate(0, h - blur * 2); pgb.Transform = matrix; g.FillPie(pgb, w - blur * 2, h - blur * 2, blur * 2, blur * 2, 0, 90); // lb matrix.Reset(); matrix.Translate(0, h - blur * 2); pgb.Transform = matrix; g.FillPie(pgb, 0, h - blur * 2, blur * 2, blur * 2, 90, 90); } } // return bitmap; }
void PaintView11(Graphics g) { // The emsize is calculated here until it can be fixed. float emsize = 24; var myRect = new RectangleF(10, 10, 200, 200); LinearGradientBrush myBrush = new LinearGradientBrush(myRect, Color.Black, Color.Black, 0 , false); ColorBlend cb = new ColorBlend(); cb.Positions = new[] {0, 1/6f, 2/6f, 3/6f, 4/6f, 5/6f, 1}; cb.Colors = new[] {Color.Red, Color.Orange, Color.Yellow, Color.Green, Color.Blue, Color.Indigo, Color.Violet}; myBrush.InterpolationColors= cb; // rotate myBrush.RotateTransform(45); //Font myFont = new Font("Times New Roman", emsize, FontStyle.Bold); Font myFont = new Font("Helvetica", emsize, FontStyle.Bold); g.DrawString("Look at this text! It is Gradiented!!", myFont, myBrush, myRect); // reset and rotate again myBrush.ResetTransform(); myBrush.RotateTransform(-45); g.DrawString("Look at this text! It is Gradiented!!", myFont, myBrush, 10, 250); }
Image genPlayButton() { Image play = new Bitmap(132, 32); Image icon = Bitmap.FromFile(Application.StartupPath + "\\icons\\play.png"); ColorBlend blend = new ColorBlend(); blend.Positions = new float[] { 0, 0.5f, 1 }; blend.Colors = new Color[] { Color.FromArgb(100, Color.Gray), Color.FromArgb(192, 107, 107, 107), Color.FromArgb(192, 159, 159, 159) }; LinearGradientBrush gradientBrush = new LinearGradientBrush(new Rectangle(0, 0, 1, 1), Color.Black, Color.Black, 0, false); gradientBrush.InterpolationColors = blend; gradientBrush.ResetTransform(); gradientBrush.ScaleTransform(64, 64); gradientBrush.RotateTransform(90); Graphics gfx = Graphics.FromImage(play); gfx.SmoothingMode = SmoothingMode.HighQuality; gfx.FillPie(gradientBrush, new Rectangle(0, 0, 132, 64), 180, 180); //background gfx.DrawPie(new Pen(Color.Black, 4), new Rectangle(2, 2, 128, 56), 180, 180); //outline gfx.DrawImage(icon, 50, 0); //icon gradientBrush.Dispose(); gfx.Dispose(); icon.Dispose(); return play; }