Esempio n. 1
0
        public void DrawImage(Image image, Rectangle to, int fromx, int fromy, int fromw, int fromh, GraphicsUnit gu, ImageAttributes ia)
        {
            APaint.Flags = (Android.Graphics.PaintFlags) 0;
            var sa = new Android.Graphics.Rect(fromx, fromy, fromx + fromw, fromy + fromh);
            var da = to.ToA();

            Android.Graphics.Paint p = null;
            Android.Graphics.ColorMatrixColorFilter cmf = null;
            if (ia != null && ia.GetColorMatrix() != null)
            {
                p = new Android.Graphics.Paint(APaint);
                var     values = ia.GetColorMatrix().Matrix;
                float[] v2     = values[0].Concat(values[1]).Concat(values[2]).Concat(values[3]).ToArray();
                cmf = new Android.Graphics.ColorMatrixColorFilter(v2);
                p.SetColorFilter(cmf);
            }
            ACanvas.DrawBitmap((image as Bitmap).ABitmap, sa, da, p == null ? APaint : p);
            if (p != null)
            {
                p.Dispose();
            }
            if (cmf != null)
            {
                cmf.Dispose();
            }
            da.Dispose();
            sa.Dispose();
        }
Esempio n. 2
0
        //Negativ
        private Android.Graphics.Bitmap createInverse(Android.Graphics.Bitmap src)
        {
            float[] colorMatrix_Negative =
            {
                -1.0f,     0,     0,    0, 255,          //red
                0,     -1.0f,     0,    0, 255,          //green
                0,         0, -1.0f,    0, 255,          //blue
                0,         0,     0, 1.0f, 0             //alpha
            };

            Android.Graphics.Paint       MyPaint_Normal       = new Android.Graphics.Paint();
            Android.Graphics.Paint       MyPaint_Negative     = new Android.Graphics.Paint();
            Android.Graphics.ColorFilter colorFilter_Negative = new Android.Graphics.ColorMatrixColorFilter(colorMatrix_Negative);
            MyPaint_Negative.SetColorFilter(colorFilter_Negative);

            Android.Graphics.Bitmap bitmap = Android.Graphics.Bitmap.CreateBitmap(src.Width, src.Height,
                                                                                  Android.Graphics.Bitmap.Config.Argb8888);
            Android.Graphics.Canvas canvas = new Android.Graphics.Canvas(bitmap);

            MyPaint_Negative.SetColorFilter(colorFilter_Negative);
            canvas.DrawBitmap(src, 0, 0, MyPaint_Negative);

            return(bitmap);

            return(bitmap);
        }
Esempio n. 3
0
        //sepia si prietenii
        private Android.Graphics.Bitmap createSepia_and_RBG(Android.Graphics.Bitmap src, int choise)
        {
            Android.Graphics.ColorMatrix colorMatrix_Sepia = new Android.Graphics.ColorMatrix();
            colorMatrix_Sepia.SetSaturation(0);

            Android.Graphics.ColorMatrix colorScale = new Android.Graphics.ColorMatrix();


            if (choise == 1)
            {
                colorScale.SetScale(1, 1f, 0.7f, 1); //sepia
            }
            else
            if (choise == 2)
            {
                colorScale.SetScale(1, 1f, 2f, 1); //albastru
            }
            else
            if (choise == 3)
            {
                colorScale.SetScale(1, 2f, 1f, 1); //verde
            }
            else
            if (choise == 4)
            {
                colorScale.SetScale(2f, 1, 1f, 1); //rosu
            }
            //0.7 sepia ch =1
            //0.4 ceva verziu
            //2 albastru fain
            //5 albastru neon

            colorMatrix_Sepia.PostConcat(colorScale);

            Android.Graphics.ColorFilter ColorFilter_Sepia = new Android.Graphics.ColorMatrixColorFilter(
                colorMatrix_Sepia);

            Android.Graphics.Bitmap bitmap = Android.Graphics.Bitmap.CreateBitmap(src.Width, src.Height,
                                                                                  Android.Graphics.Bitmap.Config.Argb8888);
            Android.Graphics.Canvas canvas = new Android.Graphics.Canvas(bitmap);

            Android.Graphics.Paint paint = new Android.Graphics.Paint();

            paint.SetColorFilter(ColorFilter_Sepia);
            canvas.DrawBitmap(src, 0, 0, paint);

            return(bitmap);
        }
Esempio n. 4
0
        //Gray Filter
        public Android.Graphics.Bitmap toGrayscale(Android.Graphics.Bitmap bmpOriginal)
        {
            int width, height;

            height = bmpOriginal.Height;
            width  = bmpOriginal.Width;

            Android.Graphics.Bitmap      bmpGrayscale = Android.Graphics.Bitmap.CreateBitmap(width, height, Android.Graphics.Bitmap.Config.Argb8888);
            Android.Graphics.Canvas      c            = new Android.Graphics.Canvas(bmpGrayscale);
            Android.Graphics.Paint       paint        = new Android.Graphics.Paint();
            Android.Graphics.ColorMatrix cm           = new Android.Graphics.ColorMatrix();
            cm.SetSaturation(0);
            Android.Graphics.ColorMatrixColorFilter f = new Android.Graphics.ColorMatrixColorFilter(cm);
            paint.SetColorFilter(f);
            c.DrawBitmap(bmpOriginal, 0, 0, paint);
            return(bmpGrayscale);
        }
Esempio n. 5
0
        public void DrawImage(Image image, Rectangle to, int fromx, int fromy, int fromw, int fromh, GraphicsUnit gu, ImageAttributes ia)
        {
            Flush();

            APaint.Flags = (Android.Graphics.PaintFlags)0;
            var sa = new Android.Graphics.Rect(fromx, fromy, fromx+fromw, fromy+fromh);
            var da = to.ToA();

            Android.Graphics.Paint p = null;
            Android.Graphics.ColorMatrixColorFilter cmf = null;
            if (ia != null && ia.GetColorMatrix() != null){
                p = new Android.Graphics.Paint(APaint);
                var values = ia.GetColorMatrix().Matrix;
                float[] v2 = values[0].Concat(values[1]).Concat(values[2]).Concat(values[3]).ToArray();
                cmf = new Android.Graphics.ColorMatrixColorFilter(v2);
                p.SetColorFilter(cmf);
            }
            ACanvas.DrawBitmap((image as Bitmap).ABitmap, sa, da, p == null ? APaint : p);
            if (p != null) p.Dispose();
            if (cmf != null) cmf.Dispose();
            da.Dispose();
            sa.Dispose();
        }