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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
        }
Ejemplo n.º 6
0
        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();
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
 bool TouchIsInRect(UITouch touch, CGRect rect)
 {
     rect = CGAffineTransform.CGRectApplyAffineTransform(rect, CGAffineTransform.MakeScale(Bounds.Width, Bounds.Height));
     return(rect.Contains(touch.LocationInView(this)));
 }