UIImage ForceImagePortrait(UIImage image) { const float M_PI = 3.14159265359f; CGAffineTransform rectTransform = CGAffineTransform.MakeIdentity(); switch (image.Orientation) { case UIImageOrientation.Left: rectTransform = CGAffineTransform.Translate(CGAffineTransform.MakeRotation(M_PI * 2), 0, -image.Size.Height); break; case UIImageOrientation.Right: rectTransform = CGAffineTransform.Translate(CGAffineTransform.MakeRotation(-(M_PI * 2)), -image.Size.Width, 0); break; case UIImageOrientation.Down: rectTransform = CGAffineTransform.Translate(CGAffineTransform.MakeRotation(-M_PI), -image.Size.Width, -image.Size.Height); break; } ; rectTransform = CGAffineTransform.Scale(rectTransform, image.CurrentScale, image.CurrentScale); image.CGImage.WithImageInRect(CGAffineTransform.CGRectApplyAffineTransform( new RectangleF(0, 0, image.Size.Width, image.Size.Height), rectTransform)); var portraitImage = UIImage.FromImage(image.CGImage, image.CurrentScale, image.Orientation); return(portraitImage); }
public override Rect getBounds() { if (_isBoundsDirty) { Rect bounds = new Rect(0, 0, 0, 0); for (int i = 0; i < _depthDisplays.Length; i++) { Display child = _depthDisplays[i]; if (child != null && child.visible) { Rect childBounds = child.getBounds(); //CHANGE CHILD BOUNDS TO PARENT childBounds.position += child.anchorPointInPixels; CGAffineTransform childTransform = child.nodeToParentTransform(); childBounds = CGAffineTransform.CGRectApplyAffineTransform(childBounds, childTransform); //childBounds.position += child.view.position; bounds = ccUtils.RectUnion(bounds, childBounds); } } _bounds = bounds; _isBoundsDirty = false; } return(_bounds); }
public override void LoadView() { var rect = UIScreen.MainScreen.Bounds; rect = CGAffineTransform.CGRectApplyAffineTransform(rect, CGAffineTransform.MakeRotation((float)(90.0f * Math.PI / 180.0f))); rect.Location = PointF.Empty; this.View = new UIView(rect); this.View.BackgroundColor = UIColor.White; this.View.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; rect = this.View.Bounds; rect.Height = 1000; _coverFlowDelegate = new CoverDelegate(); _coverFlowDataSource = new CoverDataSource(this); coverflow = new TKCoverflowView(this.View.Bounds); coverflow.AutoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight; coverflow.CoverflowDelegate = _coverFlowDelegate; coverflow.DataSource = _coverFlowDataSource; if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad) { coverflow.CoverSpacing = 100; coverflow.CoverSize = new SizeF(300, 300); } this.View.AddSubview(coverflow); }
internal static Graphics.Rect GetBoundingBox(this UIView?platformView) { if (platformView == null) { return(new Rect()); } var nvb = platformView.GetPlatformViewBounds(); var transform = platformView.GetViewTransform(); var radians = transform.ExtractAngleInRadians(); var rotation = CoreGraphics.CGAffineTransform.MakeRotation((nfloat)radians); CGAffineTransform.CGRectApplyAffineTransform(nvb, rotation); return(new Rect(nvb.X, nvb.Y, nvb.Width, nvb.Height)); }
public void UpdateCutOut() { var roiRectTransform = CGAffineTransform.Multiply(BottomToTopTransform, UIRotationTransform); var temp = CGAffineTransform.CGRectApplyAffineTransform(RegionOfInterest, roiRectTransform); var cutout = Preview.VideoPreviewLayer.MapToLayerCoordinates(temp); var path = UIBezierPath.FromRect(CutoutView.Frame); path.AppendPath(UIBezierPath.FromRect(cutout)); MaskLayer.Path = path.CGPath; var numFrame = cutout; numFrame.Y += numFrame.Height; NumberView.Frame = numFrame; }
private void ViewResized(UIPinchGestureRecognizer pinchInfo) { var scale = pinchInfo.Scale; var transform = CGAffineTransform.MakeIdentity(); transform.Scale(scale, scale); ImageView.Transform = transform; if (ImageView.Frame.Size.IsSmallerThan(LimitSize)) { ImageView.Transform = _previousTransform; return; } _previousTransform = transform; var transformedBounds = CGAffineTransform.CGRectApplyAffineTransform(ImageView.Bounds, transform); var location = new CGPoint(Frame.X + ImageView.Frame.X, Frame.Y + ImageView.Frame.Y); Frame = new CGRect(location, transformedBounds.Size); this.UpdateLayersFrame(); }
private UIImage FixOrientation(UIImage image) { // image.Scale(newSize, image.CurrentScale); var bounds = new CGRect(CGPoint.Empty, image.Size); var newSize = CGAffineTransform.CGRectApplyAffineTransform(bounds, CGAffineTransform.MakeRotation(-(nfloat)Math.PI / 2)).Size; UIGraphics.BeginImageContextWithOptions(newSize, true, image.CurrentScale); var context = UIGraphics.GetCurrentContext(); context.TranslateCTM(newSize.Width / 2, newSize.Height / 2); image.Draw(new CGRect(-image.Size.Width / 2, -image.Size.Height / 2, image.Size.Width, image.Size.Height)); var newImage = UIGraphics.GetImageFromCurrentImageContext(); UIGraphics.EndImageContext(); return(newImage); }
bool TouchIsInRect(UITouch touch, CGRect rect) { rect = CGAffineTransform.CGRectApplyAffineTransform(rect, CGAffineTransform.MakeScale(Bounds.Width, Bounds.Height)); return(rect.Contains(touch.LocationInView(this))); }