如何缩小iPhone 7相机拍摄的照片尺寸 [英] How to reduce size of the picture taken by camera in iphone 7

查看:37
本文介绍了如何缩小iPhone 7相机拍摄的照片尺寸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发 xamarin ios.我必须在 iphone 应用程序中实现相机功能.我已经实现了代码.但问题是,当我尝试使用 webservices 上传图片时,由于图片的大小,它没有上传.

I am working on xamarin ios. I have to implement camera functionality in iphone app. I have implemted the code. But the problem is that when I try to upload the picture with webservices, it doesn't upload due to size of the image.

所以我试图缩放图片的大小,但在这种情况下,图像看起来很拉伸.我希望该图片应该以相同的尺寸上传,可能质量最差,但高度和宽度应该是原始的.

So I tried to scale the size of picture but in that case the image is looking strethced. I want that image should be uploaded with same size, may be with worst quality but height and width should be original.

这是我实现的代码:

Camera.TakePicture(this, (obj) =>
            {
                var photo = obj.ValueForKey(new NSString("UIImagePickerControllerOriginalImage")) as UIImage;
                var image = photo.Scale(new CGSize(1280, 720));
                Byte[] myByteArray;
                using (NSData imageData = image.AsJPEG(0.0f))
                {

                    myByteArray = new Byte[imageData.Length];
                    System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, myByteArray, 0, Convert.ToInt32(imageData.Length));
                }

            }); 

推荐答案

不要执行缩放操作

var image = photo.Scale(new CGSize(1280, 720));

var image = photo.Scale(new CGSize(1280, 720));

如果您不想更改尺寸.如果你确实想调整大小并保持纵横比,这段代码应该可以做到

if you DONT want to change the size. If you do want to resize and also keep the aspect ratio, this code sniped should do it

// Resize the image to be contained within a maximum width and height, keeping aspect ratio
        public UIImage MaxResizeImage (UIImage sourceImage, float maxWidth, float maxHeight)
        {
            var sourceSize = sourceImage.Size;
            var maxResizeFactor = Math.Max (maxWidth / sourceSize.Width, maxHeight / sourceSize.Height);
            if (maxResizeFactor > 1) return sourceImage;
            var width = maxResizeFactor * sourceSize.Width;
            var height = maxResizeFactor * sourceSize.Height;
            UIGraphics.BeginImageContext (new SizeF ((float)width, (float)height));
            sourceImage.Draw (new RectangleF (0, 0, (float)width, (float)height));
            var resultImage = UIGraphics.GetImageFromCurrentImageContext ();
            UIGraphics.EndImageContext ();
            return resultImage;
        }

如何在你的代码上使用

Camera.TakePicture(this, (obj) =>
            {
                var photo = obj.ValueForKey(new NSString("UIImagePickerControllerOriginalImage")) as UIImage;
                var image = MaxResizeImage (photo,1280, 720);
                Byte[] myByteArray;
                using (NSData imageData = image.AsJPEG(0.0f))
                {

                    myByteArray = new Byte[imageData.Length];
                    System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, myByteArray, 0, Convert.ToInt32(imageData.Length));
                }

            }); 

这篇关于如何缩小iPhone 7相机拍摄的照片尺寸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆