CALayer MakeBackgroundLayer(RectangleF frame) { if (textureColor == null) { texture = UIImage.FromBundle("Images/texture.png"); textureColor = UIColor.FromPatternImage(texture); } BeginImageContext(frame.Size); var c = UIGraphics.GetCurrentContext(); texture.DrawAsPatternInRect(frame); Images.MenuShadow.Draw(frame); var result = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); var back = new CALayer() { Frame = frame }; Graphics.ConfigLayerHighRes(back); back.Contents = result.CGImage; return(back); }
static UIImage ImageWithImage(UIImage image, CGSize newSize) { var rect = new CGRect(0, 0, newSize.Width, newSize.Height); UIGraphics.BeginImageContextWithOptions(newSize, false, 0); image.DrawAsPatternInRect(rect); UIImage newImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(newImage); }
protected static UIImage CreateColoredImage (UIColor color, UIImage mask) { var rect = new CGRect (CGPoint.Empty, mask.Size); UIGraphics.BeginImageContextWithOptions (mask.Size, false, mask.CurrentScale); CGContext context = UIGraphics.GetCurrentContext (); mask.DrawAsPatternInRect (rect); context.SetFillColor (color.CGColor); context.SetBlendMode (CGBlendMode.SourceAtop); context.FillRect (rect); UIImage result = UIGraphics.GetImageFromCurrentImageContext (); UIGraphics.EndImageContext (); return result; }
public static UIImage correctlyOrientedImage(UIImage image) { if (image.Orientation == UIImageOrientation.Up) { return(image); } UIGraphics.BeginImageContextWithOptions(image.Size, false, image.CurrentScale); image.DrawAsPatternInRect(new CGRect(0, 0, image.Size.Width, image.Size.Height)); UIImage normalizedImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(normalizedImage); }
public static UIImage resizeImage(UIImage image, nfloat newWidth) { nfloat scale = newWidth / image.Size.Width; nfloat newHeight = image.Size.Height * scale; UIGraphics.BeginImageContext(new CGSize(newWidth, newHeight)); image.DrawAsPatternInRect(new CGRect(0, 0, newWidth, newHeight)); var newImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(newImage); }
public static UIImage resized(CGSize newSize, UIImage image) { nfloat scale = UIScreen.MainScreen.Scale; /*You can remove the below comment if you dont want to scale the image in retina device .Dont forget to comment UIGraphicsBeginImageContextWithOptions*/ UIGraphics.BeginImageContext(newSize); UIGraphics.BeginImageContextWithOptions(newSize, false, scale); image.DrawAsPatternInRect(new CGRect(0, 0, newSize.Width, newSize.Height)); UIImage newImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(newImage); }
private UIImage CropImage(UIImage image, CGRect clipRect, int width, int height) { CGSize sz = new CGSize(width, height); if (UIScreen.MainScreen.Scale == 2.0) { UIGraphics.BeginImageContextWithOptions(sz, true, 0); } else { UIGraphics.BeginImageContext(sz); } UIGraphics.RectClip(clipRect); image.DrawAsPatternInRect(clipRect); UIImage newImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(newImage); }
public static CALayer MakeBackgroundLayer(UIImage image, RectangleF frame) { var textureColor = UIColor.FromPatternImage (image); UIGraphics.BeginImageContext (frame.Size); var c = UIGraphics.GetCurrentContext (); image.DrawAsPatternInRect (frame); //Images.MenuShadow.Draw (frame); var result = UIGraphics.GetImageFromCurrentImageContext (); UIGraphics.EndImageContext (); var back = new CALayer { Frame = frame }; //TODO: //Graphics.ConfigLayerHighRes (back); back.Contents = result.CGImage; return back; }
public static UIImage GetImageWithOverlayColor(this UIImage self, UIColor color) { RectangleF rect = new RectangleF(0.0f, 0.0f, self.Size.Width, self.Size.Height); UIGraphics.BeginImageContextWithOptions(self.Size, false, self.CurrentScale); self.DrawAsPatternInRect(rect); CGContext context = UIGraphics.GetCurrentContext(); context.SetBlendMode(CGBlendMode.SourceIn); context.SetFillColor(color.CGColor); context.FillRect(rect); UIImage image = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(image); }
public static CALayer MakeBackgroundLayer(UIImage image, CGRect frame) { var textureColor = UIColor.FromPatternImage(image); UIGraphics.BeginImageContext(frame.Size); var c = UIGraphics.GetCurrentContext(); image.DrawAsPatternInRect(frame); //Images.MenuShadow.Draw (frame); var result = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); var back = new CALayer { Frame = frame }; //TODO: //Graphics.ConfigLayerHighRes (back); back.Contents = result.CGImage; return(back); }