// Original source: http://stackoverflow.com/questions/8467141/ios-how-to-achieve-emboss-effect-for-the-text-on-uilabel public static UIImage MaskImage(UIImage image, UIImage maskImage) { var maskRef = maskImage.CGImage; var mask = CGImage.CreateMask(maskRef.Width, maskRef.Height, maskRef.BitsPerComponent, maskRef.BitsPerPixel, maskRef.BytesPerRow, maskRef.DataProvider, null, false); // CGImages return new instances too! var cgImage = image.CGImage; var masked = cgImage.WithMask(mask); cgImage.Dispose(); mask.Dispose(); var img = UIImage.FromImage(masked); masked.Dispose(); maskRef.Dispose(); UIGraphics.BeginImageContext(img.Size); img.Draw(new RectangleF(0, 0, img.Size.Width, img.Size.Height)); UIImage copy = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); img.Dispose(); return(copy); }
public static UIImage MaskImage(this UIImage img, UIImage maskImage) { var maskRef = maskImage.CGImage; var mask = CGImage.CreateMask((int)maskRef.Width, (int)maskRef.Height, (int)maskRef.BitsPerComponent, (int)maskRef.BitsPerPixel, (int)maskRef.BytesPerRow, maskRef.DataProvider, null, false); var masked = img.CGImage.WithMask(mask); return(new UIImage(masked)); }
public TwittView() { _backgroundImageView = new UIImageView(); _userNameLabel = ViewFactory.CreateUILabel(); _userMaskImageView = new UIImageView(); _viaLabel = ViewFactory.CreateUILabel(); _twittTextLabel = ViewFactory.CreateUILabel(); _lineImageView = new UIImageView(); _twittDateLabel = ViewFactory.CreateUILabel(); _twittUrlLabel = ViewFactory.CreateUILabel(); AddSubview(_backgroundImageView); AddSubview(_userNameLabel); AddSubview(_viaLabel); AddSubview(_twittTextLabel); AddSubview(_lineImageView); AddSubview(_twittDateLabel); AddSubview(_twittUrlLabel); AddSubview(_userMaskImageView); _backgroundImageView.Image = UIImage.FromFile(ImagePathes.TwittBg); _userNameLabel.Font = UIFont.BoldSystemFontOfSize(14); _userNameLabel.TextColor = UIColor.FromRGB(69, 99, 141); _viaLabel.Font = UIFont.BoldSystemFontOfSize(12); _twittTextLabel.Font = UIFont.SystemFontOfSize(12); _twittTextLabel.LineBreakMode = UILineBreakMode.WordWrap; _twittTextLabel.Lines = 0; _lineImageView.Image = UIImage.FromFile(ImagePathes.Line); _lineImageView.SizeToFit(); _twittDateLabel.Font = UIFont.SystemFontOfSize(10); _twittDateLabel.TextColor = UIColor.FromRGB(123, 123, 123); _userMaskImageView.Frame = new RectangleF(0, 0, 72, 72); var maskImg = UIImage.FromFile(ImagePathes.MaskAvatar).CGImage; _mask = CGImage.CreateMask(maskImg.Width, maskImg.Height, maskImg.BitsPerComponent, maskImg.BitsPerPixel, maskImg.BytesPerRow, maskImg.DataProvider, null, true); }
public TwittTableCell(UITableViewCellStyle style, string reuseIdentifier) : base(style, reuseIdentifier) { ContentView.BackgroundColor = UIColor.FromRGB(235, 235, 235); _timeLabel = ViewFactory.CreateUILabel(); _timeLabel.TextColor = UIColor.FromRGB(159, 159, 159); _timeLabel.Font = UIFont.SystemFontOfSize(10); ContentView.AddSubview(_timeLabel); TextLabel.BackgroundColor = UIColor.Clear; TextLabel.Font = UIFont.BoldSystemFontOfSize(15); DetailTextLabel.BackgroundColor = UIColor.Clear; DetailTextLabel.TextColor = UIColor.FromRGB(159, 159, 159); var maskImg = UIImage.FromFile(ImagePathes.AvatarMini).CGImage; _mask = CGImage.CreateMask(maskImg.Width, maskImg.Height, maskImg.BitsPerComponent, maskImg.BitsPerPixel, maskImg.BytesPerRow, maskImg.DataProvider, null, true); var size = _timeLabel.Frame.Size; _timeLabel.Frame = new RectangleF(new System.Drawing.PointF(Bounds.Width - 25, 15), size); }