public static UIImage ApplyTintEffect (this UIImage self, UIColor tintColor) { const float EffectColorAlpha = 0.6f; var effectColor = tintColor; nfloat alpha; var componentCount = tintColor.CGColor.NumberOfComponents; if (componentCount == 2) { nfloat white; if (tintColor.GetWhite (out white, out alpha)) effectColor = UIColor.FromWhiteAlpha (white, EffectColorAlpha); } else { try { nfloat r, g, b; tintColor.GetRGBA (out r, out g, out b, out alpha); effectColor = UIColor.FromRGBA (r, g, b, EffectColorAlpha); } catch { } } return ApplyBlur (self, blurRadius: 10, tintColor: effectColor, saturationDeltaFactor: -1, maskImage: null); }
public static UIImage ApplyTintEffectWithColor(this UIImage image, UIColor tintColor) { const float EFFECT_COLOR_ALPHA = 0.6f; UIColor effectColor = tintColor; nint componentCount = tintColor.CGColor.NumberOfComponents; if (componentCount == 2) { nfloat b, a; if (tintColor.GetWhite (out b, out a)) { effectColor = UIColor.FromWhiteAlpha (b, EFFECT_COLOR_ALPHA); } } else { nfloat r, g, b, a; try { tintColor.GetRGBA (out r, out g, out b, out a); effectColor = UIColor.FromRGBA (r, g, b, EFFECT_COLOR_ALPHA); } catch { } } return ApplyBlur (image, 10f, effectColor, -1.0f, null); }