protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); RequestWindowFeature(WindowFeatures.NoTitle); SetContentView(Resource.Layout.Main); _colorMatrix = new ColorMatrix(); _colorMatrixFilter = new ColorMatrixColorFilter(_colorMatrix); _paint = new Paint(); _paint.SetColorFilter(_colorMatrixFilter); var contrast = FindViewById<SeekBar>(Resource.Id.contrast); contrast.KeyProgressIncrement = 1; contrast.ProgressChanged += ContrastChanged; var brightness = FindViewById<SeekBar>(Resource.Id.brightness); brightness.KeyProgressIncrement = 1; brightness.ProgressChanged += BrightnessChanged; var saturation = FindViewById<SeekBar>(Resource.Id.saturation); saturation.KeyProgressIncrement = 1; saturation.ProgressChanged += SaturationChanged; var imageSelector = FindViewById<Button>(Resource.Id.selectImage); imageSelector.Click += ImagesSelectorClick; _imageViewer = FindViewById<ImageView>(Resource.Id.imageViewer); }
public static Bitmap ToGrayscale(Bitmap source) { using (var colorMatrix = new ColorMatrix()) { colorMatrix.SetSaturation(0f); return ColorSpaceTransformation.ToColorSpace(source, colorMatrix); } }
public ColorSpaceTransformation(float[][] rgbawMatrix) { if (rgbawMatrix.Length != 5 || rgbawMatrix.Any(v => v.Length != 5)) throw new ArgumentException("Wrong size of RGBAW color matrix"); _colorMatrix = new ColorMatrix(); RGBAWMatrix = rgbawMatrix; }
public static Bitmap ToSepia(Bitmap source) { using (ColorMatrix saturation = new ColorMatrix()) using (ColorMatrix rgbFilter = new ColorMatrix()) { saturation.SetSaturation(0f); rgbFilter.SetScale(1.0f, 0.95f, 0.82f, 1.0f); saturation.SetConcat(rgbFilter, saturation); return ColorSpaceTransformation.ToColorSpace(source, saturation); } }
public static Bitmap ToColorSpace(Bitmap source, ColorMatrix colorMatrix) { int width = source.Width; int height = source.Height; Bitmap bitmap = Bitmap.CreateBitmap(width, height, source.GetConfig()); using (Canvas canvas = new Canvas(bitmap)) using (Paint paint = new Paint()) { paint.SetColorFilter(new ColorMatrixColorFilter(colorMatrix)); canvas.DrawBitmap(source, 0, 0, paint); return bitmap; } }
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; }
protected override Bitmap Transform(Bitmap source) { int width = source.Width; int height = source.Height; Bitmap bitmap = Bitmap.CreateBitmap(width, height, Bitmap.Config.Argb8888); Canvas canvas = new Canvas(bitmap); ColorMatrix saturation = new ColorMatrix(); saturation.SetSaturation(0f); Paint paint = new Paint(); paint.SetColorFilter(new ColorMatrixColorFilter(saturation)); canvas.DrawBitmap(source, 0, 0, paint); source.Recycle(); return bitmap; }
protected override void OnElementChanged(ElementChangedEventArgs<Image> e) { base.OnElementChanged(e); if (Element == null) { return; } var matrixColor = new ColorMatrix(); filterColor = new ColorMatrixColorFilter(matrixColor); var matrixGray = new ColorMatrix(); matrixGray.SetSaturation(0); filterGray = new ColorMatrixColorFilter(matrixGray); }
protected override void OnCreate(Bundle bundle) { _bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.image_for_cropping); base.OnCreate (bundle); _mainLayout = new MainLayout (this); _mainLayout.ImageView.SetBitmap (_bitmap); var filter = new ColorMatrix (); filter.SetScale (1, 1, 1, 1); _mainLayout.ImageView.SetFilter (filter); SetContentView (_mainLayout); _mainLayout.RedSeek.Progress = _mainLayout.GreenSeek.Progress = _mainLayout.BlueSeek.Progress = _mainLayout.AlphaSeek.Progress = 50; _mainLayout.RedSeek.StopTrackingTouch += OnChangeSeek; _mainLayout.GreenSeek.StopTrackingTouch += OnChangeSeek; _mainLayout.BlueSeek.StopTrackingTouch += OnChangeSeek; _mainLayout.AlphaSeek.StopTrackingTouch += OnChangeSeek; _mainLayout.LoadImage.Click += LoadImage; }
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; }
//float red, float green, float blue, float alpha) public void SetFilter(ColorMatrix filter) { _filter = filter; Invalidate (); }
public static Bitmap ToColorSpace(Bitmap source, ColorMatrix colorMatrix) { var config = source.GetConfig(); if (config == null) config = Bitmap.Config.Argb8888; // This will support transparency int width = source.Width; int height = source.Height; Bitmap bitmap = Bitmap.CreateBitmap(width, height, config); using (Canvas canvas = new Canvas(bitmap)) using (Paint paint = new Paint()) { paint.SetColorFilter(new ColorMatrixColorFilter(colorMatrix)); canvas.DrawBitmap(source, 0, 0, paint); return bitmap; } }
public ColorSpaceTransformation(ColorMatrix colorMatrix) { _colorMatrix = colorMatrix; }
private ImageView GetBrushImageWithColor(ImageView brushImage, Android.Graphics.Color color) { ImageView toReturn = new ImageView (context); using (Bitmap sourceBitmap = brushImage.DrawingCache) { if (sourceBitmap != null) { float R = (float)color.R; float G = (float)color.G; float B = (float)color.B; float[] colorTransform = { R / 255f ,0 ,0 ,0, 0, // R color 0, G / 255f , 0 ,0 ,0 // G color ,0 ,0 , B / 255f, 0, 0 // B color ,0 ,0 ,0 ,1f ,0f }; ColorMatrix colorMatrix = new ColorMatrix (); colorMatrix.SetSaturation (0f); //Remove Colour colorMatrix.Set (colorTransform); ColorMatrixColorFilter colorFilter = new ColorMatrixColorFilter (colorMatrix); Paint paint = new Paint (); paint.SetColorFilter (colorFilter); Bitmap mutableBitmap = sourceBitmap.Copy (Bitmap.Config.Argb8888, true); toReturn.SetImageBitmap (mutableBitmap); Canvas canvas = new Canvas (mutableBitmap); canvas.DrawBitmap (mutableBitmap, 0, 0, paint); } } return toReturn; }
public ColorFilter(View parent, ColorMatrix cm) { CFilter = new ColorMatrixColorFilter(cm); Parent = parent; }
public static Bitmap changeBitmapContrastBrightness (Bitmap bmp, float contrast, float brightness) { ColorMatrix cm = new ColorMatrix (new float[] { contrast, 0, 0, 0, brightness, 0, contrast, 0, 0, brightness, 0, 0, contrast, 0, brightness, 0, 0, 0, 1, 0 }); cm.SetSaturation (0); Bitmap ret = Bitmap.CreateBitmap (bmp.Width, bmp.Height, bmp.GetConfig ()); Canvas canvas = new Canvas (ret); Paint paint = new Paint (); paint.SetColorFilter (new ColorMatrixColorFilter (cm)); canvas.DrawBitmap (bmp, 0, 0, paint); return ret; }
private void OnChangeSeek(object sender, Android.Widget.SeekBar.StopTrackingTouchEventArgs e) { float scailR = 2f * _mainLayout.RedSeek.Progress / 100F; float scailG = 2f * _mainLayout.GreenSeek.Progress / 100F; float scailB = 2f * _mainLayout.BlueSeek.Progress / 100F; float scailA = 2f * _mainLayout.AlphaSeek.Progress / 100F; var filter = new ColorMatrix (); filter.SetScale (scailR, scailG, scailB, scailA); _mainLayout.ImageView.SetFilter (filter); _mainLayout.TextView.Text = "R: " + scailR + " | G: " + scailG + " | B : " + scailB + " | A: " + scailA; }