2017-05-15 5 views
0

私はxamarin iosで作業しています。私はiPhoneのアプリでカメラの機能を実装する必要があります。私はコードを実装しました。しかし、問題は、webservicesで画像をアップロードしようとすると、画像のサイズのためにアップロードされないということです。iphone 7でカメラで撮影した画像のサイズを小さくするには

私は画像のサイズを拡大しようとしましたが、その場合は画像がぼやけて見えます。その画像を同じサイズでアップロードする必要があります。最悪の品質でも、高さと幅は元のサイズにする必要があります。ここ

私が実装されたコードである:

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)); 
       } 

      }); 

答えて

2

いけない実行スケール操作

VAR画像= photo.Scale(新しいCGSize(1280、720));

サイズを変更したくない場合。あなたはサイズを変更しても縦横比を維持したいならば、このコードはどのようにあなたのコード

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)); 
       } 

      }); 
+0

おかげでその作業に使用するためにそれを

// 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; } 

を行う必要がありますsniped – anand

関連する問題