Ejemplo n.º 1
0
        public static ColorMatrixColorFilter GetColorFilter(bool disabled, bool highlighted)
        {
            if (_cdDownloadItemGrayscale == null)
            {
                var cm = new ColorMatrixBuilder().Saturation(0.0f).Create();
                _cdDownloadItemGrayscale = new ColorMatrixColorFilter(cm);
            }

            if (_cdDownloadItemHighlighted == null)
            {
                var cm = new ColorMatrixBuilder().Hue(-20f).Create();
                _cdDownloadItemHighlighted = new ColorMatrixColorFilter(cm);
            }

            if (disabled)
            {
                return(_cdDownloadItemGrayscale);
            }

            if (highlighted)
            {
                return(_cdDownloadItemHighlighted);
            }

            return(null);
        }
        Bitmap ApplyHiFi(Bitmap src)
        {
            var bm = src.Copy();

            /*var w = c.Width;
             * var h = c.Height;
             *
             * var bm = Bitmap.CreateBitmap(w, h, c.GetConfig());*/

            float brightness = 0.25f;
            float contrast   = 1.25f;


            var         canvasResult = new Canvas(bm);
            var         paint        = new Paint();
            ColorMatrix colorMatrix  = new ColorMatrix(new float[]
            {
                contrast, 0, 0, 0, brightness,
                0, contrast, 0, 0, brightness,
                0, 0, contrast, 0, brightness,
                0, 0, 0, 1, 0
            });

            var filter = new ColorMatrixColorFilter(colorMatrix);

            paint.SetColorFilter(filter);
            canvasResult.DrawBitmap(bm, 0, 0, paint);

            return(bm);
        }
Ejemplo n.º 3
0
        public Bitmap Transform(Bitmap source)
        {
            Bitmap result = Bitmap.CreateBitmap(source.Width, source.Height, source.GetConfig());
            Bitmap noise;

            try
            {
                noise = picasso.Load(Resource.Drawable.noise).Get();
            }
            catch (Exception)
            {
                throw new Exception("Failed to apply transformation! Missing resource.");
            }
            BitmapShader shader      = new BitmapShader(noise, Shader.TileMode.Repeat, Shader.TileMode.Repeat);
            ColorMatrix  colorMatrix = new ColorMatrix();

            colorMatrix.SetSaturation(0);
            ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
            Paint paint = new Paint(PaintFlags.AntiAlias);

            paint.SetColorFilter(filter);
            Canvas canvas = new Canvas(result);

            canvas.DrawBitmap(source, 0, 0, paint);
            paint.SetColorFilter(null);
            paint.SetShader(shader);
            paint.SetXfermode(new PorterDuffXfermode(PorterDuff.Mode.Multiply));
            canvas.DrawRect(0, 0, canvas.Width, canvas.Height, paint);
            source.Recycle();
            noise.Recycle();
            return(result);
        }
        public static void CustomizedToast(Android.Graphics.Color textColor, Android.Graphics.Color backgroundColor, string message, ToastLength length = ToastLength.Long,
                                           string iconResource = "Elec", float textSize = 16, string resourceFolder = "drawable")
        {
            int resourceId = Android.App.Application.Context.Resources.GetIdentifier(iconResource, resourceFolder, Android.App.Application.Context.PackageName);
            var toast      = Toast.MakeText(Android.App.Application.Context, message, length);
            var v          = (Android.Views.ViewGroup)toast.View;

            if (v.ChildCount > 0 && v.GetChildAt(0) is TextView)
            {
                TextView tv = (TextView)v.GetChildAt(0);
                tv.SetTextColor(textColor);
                tv.SetCompoundDrawablesRelativeWithIntrinsicBounds(resourceId, 0, 0, 0);
                tv.SetTextSize(Android.Util.ComplexUnitType.Sp, textSize);
            }
            Android.Graphics.Color c  = backgroundColor;
            ColorMatrixColorFilter CM = new ColorMatrixColorFilter(new float[]
            {
                0, 0, 0, 0, c.R,
                0, 0, 0, 0, c.G,
                0, 0, 0, 0, c.B,
                0, 0, 0, 1, 0
            });

            toast.View.Background.SetColorFilter(CM);
            toast.Show();
        }
Ejemplo n.º 5
0
        public void ShortAlert(string message)
        {
            //   Toast.MakeText(Application.Context, message, ToastLength.Short).Show();

            Toast t = Toast.MakeText(Application.Context, message, ToastLength.Short);

            System.Drawing.Color   c  = System.Drawing.Color.FromArgb(88, 197, 255);
            ColorMatrixColorFilter CM = new ColorMatrixColorFilter(new float[]
            {
                0, 0, 0, 0, c.R,
                0, 0, 0, 0, c.G,
                0, 0, 0, 0, c.B,
                0, 0, 0, 1, 0
            });

            t.View.Background.SetColorFilter(CM);

            t.Show();


            //float cc = (((float)(c.R) + (float)(c.G) + (float)(c.B)) / 3);
            //if (cc >= 80)
            //    t.View.FindViewById<TextView>(Android.Resource.Id.Message).SetTextColor((Android.Content.Res.ColorStateList)Android.Resource.Color.White);
            //else
            //    t.View.FindViewById<TextView>(Android.Resource.Id.Message).SetTextColor((Android.Content.Res.ColorStateList)Android.Resource.Color.White);
        }
Ejemplo n.º 6
0
        private static ColorMatrixColorFilter GetCommonColorFilter()
        {
            if (_cfPoiCommon == null)
            {
                var cm = new ColorMatrixBuilder().Hue(+30).Brightness(-100).Saturation(0.4f).Create();
                _cfPoiCommon = new ColorMatrixColorFilter(cm);
            }

            return(_cfPoiCommon);
        }
Ejemplo n.º 7
0
        private static ColorMatrixColorFilter GetFavouriteColorFilter()
        {
            if (_cfPoiFavourite == null)
            {
                var cm = new ColorMatrixBuilder().Hue(-30).Create();
                _cfPoiFavourite = new ColorMatrixColorFilter(cm);
            }

            return(_cfPoiFavourite);
        }
Ejemplo n.º 8
0
        private static ColorMatrixColorFilter GetImportantColorFilter()
        {
            if (_cfPoiImportant == null)
            {
                var cm = new ColorMatrixBuilder().Create();
                _cfPoiImportant = new ColorMatrixColorFilter(cm);
            }

            return(_cfPoiImportant);
        }
        protected override void OnElementChanged(ElementChangedEventArgs <Image> e)
        {
            base.OnElementChanged(e);

            if (Control != null)
            {
                ColorMatrix matrix = new ColorMatrix();
                matrix.SetSaturation(0);
                ColorMatrixColorFilter cf = new ColorMatrixColorFilter(matrix);
                Control.SetColorFilter(cf);
                Control.ImageAlpha = 128;
            }
        }
Ejemplo n.º 10
0
        // Fill in the contents of the photo card (invoked by the layout manager):
        public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
        {
            RecyclerViewHolder vh = holder as RecyclerViewHolder;

            context = Application.Context;
            // Set the ImageView and TextView in this ViewHolder's CardView
            // from this position in the photo album:
            vh.LevelNameTextView.Text       = levels[position].LevelName;
            vh.LevelNumberTextView.Text     = levels[position].Number.ToString();
            vh.LevelScoreTextView.Text      = levels[position].LevelScoreEarned.ToString();
            vh.LevelTotalScoreTextView.Text = levels[position].LevelTotalScore.ToString();

            vh.MapImageView.SetImageResource(levels[position].Map);
            vh.LeftFlagImageView1.SetImageResource(levels[position].LeftFlag1);
            vh.LeftFlagImageView2.SetImageResource(levels[position].LeftFlag2);
            vh.LeftFlagImageView3.SetImageResource(levels[position].LeftFlag3);
            vh.RightFlagImageView1.SetImageResource(levels[position].RightFlag1);
            vh.RightFlagImageView2.SetImageResource(levels[position].RightFlag2);
            vh.RightFlagImageView3.SetImageResource(levels[position].RightFlag3);
            vh.VehicleTypeImageView1.SetImageResource(levels[position].VehicleType1);
            vh.VehicleTypeImageView2.SetImageResource(levels[position].VehicleType2);

            ColorMatrix matrix = new ColorMatrix();

            matrix.SetSaturation(0);
            ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);

            #region BWImage
            if (levels[position].LevelUnlocked)
            {
                //
            }
            else
            {
                vh.MapImageView.SetColorFilter(filter);
                vh.LeftFlagImageView1.SetColorFilter(filter);
                vh.LeftFlagImageView2.SetColorFilter(filter);
                vh.LeftFlagImageView3.SetColorFilter(filter);
                vh.RightFlagImageView1.SetColorFilter(filter);
                vh.RightFlagImageView2.SetColorFilter(filter);
                vh.RightFlagImageView3.SetColorFilter(filter);
                vh.VehicleTypeImageView1.SetColorFilter(filter);
                vh.VehicleTypeImageView2.SetColorFilter(filter);
                vh.LevelNameLinear.SetBackgroundResource(Resource.Drawable._MMTopLevelGray);
                vh.LevelScoreTextView.SetTextColor(Color.Gray);
                vh.LevelTotalScoreTextView.SetTextColor(Color.Gray);
                vh.LevelScoreDividerTextView.SetTextColor(Color.Gray);
            }

            #endregion
        }
Ejemplo n.º 11
0
        public void LongAlert(string message, System.Drawing.Color color)
        {
            var toast       = Toast.MakeText(Application.Context, message, ToastLength.Long);
            var colorMatrix = new ColorMatrixColorFilter(new float[]
            {
                0, 0, 0, 0, color.R,
                0, 0, 0, 0, color.G,
                0, 0, 0, 0, color.B,
                0, 0, 0, 1, 0
            });

            toast.View.Background.SetColorFilter(colorMatrix);
            toast.Show();
        }
Ejemplo n.º 12
0
        public byte[] Sepia(byte[] image)
        {
            Bitmap bmpOriginal = ByteToBitmap(image);
            int    width, height, r, g, b, c, gry;

            height = bmpOriginal.Height;
            width  = bmpOriginal.Width;
            int         depth     = 20;
            Bitmap      bmpSephia = Bitmap.CreateBitmap(width, height, Bitmap.Config.Argb8888);
            Canvas      canvas    = new Canvas(bmpSephia);
            Paint       paint     = new Paint();
            ColorMatrix cm        = new ColorMatrix();

            cm.SetScale(.3f, .3f, .3f, 1.0f);
            ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);

            paint.SetColorFilter(f);
            canvas.DrawBitmap(bmpOriginal, 0, 0, paint);
            for (int x = 0; x < width; x++)
            {
                for (int y = 0; y < height; y++)
                {
                    c = bmpOriginal.GetPixel(x, y);

                    r = Android.Graphics.Color.GetRedComponent(c);
                    g = Android.Graphics.Color.GetGreenComponent(c);
                    b = Android.Graphics.Color.GetBlueComponent(c);

                    gry = (r + g + b) / 3;
                    r   = g = b = gry;

                    r = r + (depth * 2);
                    g = g + depth;

                    if (r > 255)
                    {
                        r = 255;
                    }
                    if (g > 255)
                    {
                        g = 255;
                    }
                    bmpSephia.SetPixel(x, y, Android.Graphics.Color.Rgb(r, g, b));
                }
            }
            byte[] sepiaimage = BitmaptoByte(bmpSephia);

            return(sepiaimage);
        }
Ejemplo n.º 13
0
        //Metoda pro změnu saturace. Zde nemusíme vytvářet matici, ale třída ColorMatrix má vlastní meotdu pro změnu saturace, do které se nahraje pouze hodnota.
        public Bitmap SaturationChanged(Bitmap oldBtm, float value)
        {
            newBtm = Bitmap.CreateBitmap(oldBtm.Width, oldBtm.Height, oldBtm.GetConfig());

            clrMatrix = new ColorMatrix();
            clrMatrix.SetSaturation(value);

            imgMtrxFilter = new ColorMatrixColorFilter(clrMatrix);
            paint         = new Paint();
            paint.SetColorFilter(imgMtrxFilter);
            canvas = new Canvas(newBtm);

            canvas.DrawBitmap(oldBtm, new Matrix(), paint);
            return(newBtm);
        }
Ejemplo n.º 14
0
        public static Bitmap ApplyBitmapBrightness(int brightnessLevel, Bitmap bitmap)
        {
            // Create a temporary bitmap to preserve the original image for the final draw
            Bitmap      brightnessAdjustedBitmap = Bitmap.CreateBitmap(bitmap.Width, bitmap.Height, Bitmap.Config.Argb8888);
            Canvas      c           = new Canvas(brightnessAdjustedBitmap);
            Paint       paint       = new Paint();
            ColorMatrix colorMatrix = new ColorMatrix();

            // Apply the brightness filter and draw the final bitmap using
            // the paint object and the origin bitmap
            ColorMatrixColorFilter brightnessFilter = AdjustBrightness(brightnessLevel);

            paint.SetColorFilter(brightnessFilter);
            c.DrawBitmap(bitmap, 0, 0, paint);
            return(brightnessAdjustedBitmap);
        }
Ejemplo n.º 15
0
        public Bitmap ToGrayscale(Bitmap bmpOriginal)
        {
            var height = bmpOriginal.Height;
            var width  = bmpOriginal.Width;

            var bmpGrayscale = Bitmap.CreateBitmap(width, height, Bitmap.Config.Argb8888);
            var c            = new Canvas(bmpGrayscale);
            var paint        = new Paint();
            var cm           = new ColorMatrix();

            cm.SetSaturation(0);
            var f = new ColorMatrixColorFilter(cm);

            paint.SetColorFilter(f);
            c.DrawBitmap(bmpOriginal, 0, 0, paint);
            return(bmpGrayscale);
        }
Ejemplo n.º 16
0
        private ColorFilter GetColorFilter(Color color)
        {
            int iColor = color;

            int red   = (iColor & 0xFF0000) / 0xFFFF;
            int green = (iColor & 0xFF00) / 0xFF;
            int blue  = iColor & 0xFF;

            float[] matrix = { 0, 0, 0, 0, red
                               ,  0, 0, 0, 0, green
                               ,  0, 0, 0, 0, blue
                               ,  0, 0, 0, 1, 0 };

            ColorFilter colorFilter = new ColorMatrixColorFilter(matrix);

            return(colorFilter);
        }
Ejemplo n.º 17
0
 public void OnAnimationUpdate(ValueAnimator animation)
 {
     if (animation == animationSat)
     {
         matrix.SetSaturation((float)animation.AnimatedValue);
         saturation = (float)animation.AnimatedValue;
         ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
         mImage.SetColorFilter(filter);
     }
     else if (animation == animationZoomIn)
     {
         Control.ScaleX = (float)animation.AnimatedValue;
         Control.ScaleY = (float)animation.AnimatedValue;
         zoom           = (float)animation.AnimatedValue;
     }
     Control.SetImageDrawable(mImage);
 }
Ejemplo n.º 18
0
        public static ColorMatrixColorFilter AdjustBrightness(int BrightnessLevel)
        {
            ColorMatrix matrix = new ColorMatrix();

            // This is essentially an identity matrix that adjusts colors based on the fourth
            // element of each row of the matrix
            matrix.Set(new float[] {
                1F, 0, 0, 0, 0.4F,
                0, 0, 0, 0, 0,
                0, 0, 1F, 0, 0.4F,
                0, 0, 0, 0.8F, 0
            });

            ColorMatrixColorFilter brightnessFilter = new ColorMatrixColorFilter(matrix);

            return(brightnessFilter);
        }
Ejemplo n.º 19
0
        void IMessage.ShortTime(string message)
        {
            var toast = Toast.MakeText(Android.App.Application.Context, message, ToastLength.Short);

            toast.SetGravity(GravityFlags.Bottom, 0, 300);
            //Color c = Color.Argb(100,0,100,0);
            Color c = Color.Rgb(0, 255, 0);
            ColorMatrixColorFilter CM = new ColorMatrixColorFilter(new float[]
            {
                0, 0, 0, 0, c.R,
                0, 0, 0, 0, c.G,
                0, 0, 0, 0, c.B,
                0, 0, 0, 1, 0
            });

            toast.View.Background.SetColorFilter(CM);
            toast.Show();
        }
Ejemplo n.º 20
0
        //Metoda pro úpravu jasu, nejprve se vytvoří nová prázdná bitmapa podle výšky a šířky původní bitmapy, dále se vytvoří matice, reprezentující barvy a jejich scaling factor(1), poslední
        //položka každého řádku matice představuje jas obrázku, do kterého nahrajeme získanou hodnotu. Vytvoříme filter, do kterého nahrajem martici, barvu, do které nahrajem filtr, do canvasu uložíme
        //novou bitmapu a aplikuejem na ní novou barvu
        public Bitmap ExposureChanged(Bitmap oldBtm, float value)
        {
            newBtm = Bitmap.CreateBitmap(oldBtm.Width, oldBtm.Height, oldBtm.GetConfig());

            clrMatrix = new ColorMatrix(new float[] {
                1, 0, 0, 0, value, //red
                0, 1, 0, 0, value, //green
                0, 0, 1, 0, value, //blue
                0, 0, 0, 1, 0
            });                    //alpha
            imgMtrxFilter = new ColorMatrixColorFilter(clrMatrix);
            paint         = new Paint();
            paint.SetColorFilter(imgMtrxFilter);
            canvas = new Canvas(newBtm);

            canvas.DrawBitmap(oldBtm, new Matrix(), paint);

            return(newBtm);
        }
Ejemplo n.º 21
0
        // 转成灰度图
        public static Bitmap toGrayscale(Bitmap bmpOriginal)
        {
            int width, height;

            height = bmpOriginal.Height;
            width  = bmpOriginal.Width;
            Bitmap bmpGrayscale = Bitmap.CreateBitmap(width, height,
                                                      Config.Argb8888);
            Canvas      c     = new Canvas(bmpGrayscale);
            Paint       paint = new Paint();
            ColorMatrix cm    = new ColorMatrix();

            cm.SetSaturation(0);
            ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);

            paint.SetColorFilter(f);
            c.DrawBitmap(bmpOriginal, 0, 0, paint);
            return(bmpGrayscale);
        }
Ejemplo n.º 22
0
        public Android.Graphics.Bitmap ToGrayScale(Android.Graphics.Bitmap image)
        {
            int width, height;

            height = image.Height;
            width  = image.Width;

            Android.Graphics.Bitmap bmpGrayscale = Android.Graphics.Bitmap.CreateBitmap(width, height, Android.Graphics.Bitmap.Config.Argb8888);
            Canvas      c     = new Canvas(bmpGrayscale);
            Paint       paint = new Paint();
            ColorMatrix cm    = new ColorMatrix();

            cm.SetSaturation(0);
            ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);

            paint.SetColorFilter(f);
            c.DrawBitmap(image, 0, 0, paint);
            return(bmpGrayscale);
        }
Ejemplo n.º 23
0
        public byte[] ResizeImage(byte[] imageData, float width, float height, int quality)
        {
            // Load the bitmap
            Bitmap originalImage = BitmapFactory.DecodeByteArray(imageData, 0, imageData.Length);

            float oldWidth    = (float)originalImage.Width;
            float oldHeight   = (float)originalImage.Height;
            float scaleFactor = 0f;

            if (oldWidth > oldHeight)
            {
                scaleFactor = width / oldWidth;
            }
            else
            {
                scaleFactor = height / oldHeight;
            }

            float newHeight = oldHeight * scaleFactor;
            float newWidth  = oldWidth * scaleFactor;

            Bitmap resizedImage = Bitmap.CreateScaledBitmap(originalImage, (int)newWidth, (int)newHeight, false);


            int scaled_width, scaled_height;

            scaled_height = resizedImage.Height;
            scaled_width  = resizedImage.Width;

            Paint       paint = new Paint();
            ColorMatrix cm    = new ColorMatrix();

            cm.SetSaturation(0);
            ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);

            paint.SetColorFilter(f);

            using (MemoryStream ms = new MemoryStream())
            {
                resizedImage.Compress(Bitmap.CompressFormat.Jpeg, quality, ms);
                return(ms.ToArray());
            }
        }
Ejemplo n.º 24
0
        public static Bitmap toGrayScale(this string fileName)
        {
            BitmapFactory.Options options = new BitmapFactory.Options {
                InPreferredConfig = Bitmap.Config.Argb8888
            };
            Bitmap originalBitmap = BitmapFactory.DecodeFile(fileName, options);

            Bitmap      grayBitmap  = Bitmap.CreateBitmap(options.OutWidth, options.OutHeight, originalBitmap.GetConfig());
            Canvas      canvas      = new Canvas(grayBitmap);
            Paint       paint       = new Paint();
            ColorMatrix colorMatrix = new ColorMatrix();

            colorMatrix.SetSaturation(0);
            ColorMatrixColorFilter colorFilter = new ColorMatrixColorFilter(colorMatrix);

            paint.SetColorFilter(colorFilter);
            canvas.DrawBitmap(originalBitmap, 0, 0, paint);

            return(grayBitmap);
        }
Ejemplo n.º 25
0
        public static Bitmap Grayscale_ColorMatrixColorFilter(Bitmap src)
        {
            int width  = src.Width;
            int height = src.Height;

            Bitmap dest = Bitmap.CreateBitmap(width, height, Bitmap.Config.Rgb565);

            Canvas canvas = new Canvas(dest);

            Paint       paint       = new Paint();
            ColorMatrix colorMatrix = new ColorMatrix();

            colorMatrix.SetSaturation(0); //value of 0 maps the color to gray-scale
            ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);

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

            return(dest);
        }
Ejemplo n.º 26
0
 public static void ShowToastMessage(Context context, Color color, string message, ToastLength shorOrLong)
 {
     try
     {
         Toast t = Toast.MakeText(context, message, shorOrLong);
         Color c = color;
         ColorMatrixColorFilter CM = new ColorMatrixColorFilter(new float[]
         {
             0, 0, 0, 0, c.R,
             0, 0, 0, 0, c.G,
             0, 0, 0, 0, c.B,
             0, 0, 0, 1, 0
         });
         t.View.Background.SetColorFilter(CM);
         t.Show();
     }
     catch (Exception ex)
     {
     }
 }
        Bitmap ApplySaturation(Bitmap src, int value)
        {
            var bm      = src.Copy();
            var f_value = (float)(value / 100.0);

            //var w = c.Width;
            //var h = c.Height;

            //var bm = Bitmap.CreateBitmap(w, h, Bitmap.Config.Argb8888);
            var canvasResult = new Canvas(bm);
            var paint        = new Paint();
            var colorMatrix  = new ColorMatrix();

            colorMatrix.SetSaturation(f_value);
            var filter = new ColorMatrixColorFilter(colorMatrix);

            paint.SetColorFilter(filter);
            canvasResult.DrawBitmap(bm, 0, 0, paint);

            return(bm);
        }
Ejemplo n.º 28
0
        public static Bitmap ToGreyScale(this Bitmap bmp)
        {
            if (bmp == null)
            {
                return(null);
            }

            var height       = bmp.Height;
            var width        = bmp.Width;
            var bmpGrayscale = Bitmap.CreateBitmap(width, height, Bitmap.Config.Argb8888);
            var canvas       = new Canvas(bmpGrayscale);
            var paint        = new Paint();
            var cm           = new ColorMatrix();

            cm.SetSaturation(0);
            var filter = new ColorMatrixColorFilter(cm);

            paint.SetColorFilter(filter);
            canvas.DrawBitmap(bmp, 0, 0, paint);
            return(bmpGrayscale);
        }
Ejemplo n.º 29
0
        //Metoda pro úpravu kontrastu, nejprve se vytvoří nová prázdná bitmapa podle výšky a šířky původní bitmapy, dále se vytvoří matice, reprezentující barvy a jejich scaling factor,
        //kontrast je kombinace jasu, vypočítaného podle vzorce a scale faktrou, vypočítaného podle vzorce.
        //Vytvoříme filter, do kterého nahrajem martici, barvu, do které nahrajem filtr, do canvasu uložíme
        //novou bitmapu a aplikuejem na ní novou barvu
        public Bitmap ContrastChanged(Bitmap oldBtm, float value)
        {
            newBtm = Bitmap.CreateBitmap(oldBtm.Width, oldBtm.Height, oldBtm.GetConfig());

            float input    = value / 100;
            float scale    = input + 1f;
            float contrast = (-0.5f * scale + 0.5f) * 255f;

            clrMatrix = new ColorMatrix(new float[] {
                scale, 0, 0, 0, contrast,
                0, scale, 0, 0, contrast,
                0, 0, scale, 0, contrast,
                0, 0, 0, 1, 0
            });
            imgMtrxFilter = new ColorMatrixColorFilter(clrMatrix);
            paint         = new Paint();
            paint.SetColorFilter(imgMtrxFilter);
            canvas = new Canvas(newBtm);

            canvas.DrawBitmap(oldBtm, new Matrix(), paint);
            return(newBtm);
        }
Ejemplo n.º 30
0
        public PageWidget(Context context, string bookId,
                          List <BookMixAToc.MixToc.Chapters> chaptersList,
                          IOnReadStateChangeListener listener) : base(context, bookId, chaptersList, listener)
        {
            mPath0     = new Path();
            mPath1     = new Path();
            mMaxLength = (float)Java.Lang.Math.Hypot(mScreenWidth, mScreenHeight);
            mPaint     = new Paint();
            mPaint.SetStyle(Paint.Style.Fill);

            createDrawable();

            ColorMatrix cm = new ColorMatrix();//设置颜色数组

            float[] array = { 0.55f, 0, 0, 0, 80.0f, 0, 0.55f, 0, 0, 80.0f, 0, 0, 0.55f, 0, 80.0f, 0, 0, 0, 0.2f, 0 };
            cm.Set(array);
            mColorMatrixFilter = new ColorMatrixColorFilter(cm);
            mMatrix            = new Matrix();

            mTouch.X = 0.01f; // 不让x,y为0,否则在点计算时会有问题
            mTouch.Y = 0.01f;
        }