2016-07-15 71 views
0

かなり大きい画像をサーバーにアップロードする必要がありますが、複数のファイルをアップロードしているため、縦横比を維持したいがファイルのサイズを圧縮したい。イメージを圧縮するが、Xamarin IOSを使用してイメージのサイズを変更しないでください。

+0

あなたはアスペクト比を維持すると言うが、タイトルにはサイズが変わらないと言う質問では、アスペクト比を維持しながら画像の幅や高さを小さくしたいのですか? 'UIImage.AsJPEG()'や 'UIImage.AsPNG()'を使ってサイズを変更せずにJPGまたはPNG表現を送ることでいくらかの圧縮を得ることができます。小さな画像にリサイズすると、さらに多くの領域を節約できます。 – dylansturg

答えて

1

画像のサイズを変更したくない場合は、JPEGとPNG形式で送信すると、ビットマップデータを送信するよりも小さくなります。あなたはPNGまたはJPEGで画像のNSData表現を得ることができます。各フォーマットにはいくつかの長所と短所がありますが、JPEGでは圧縮のために品質を犠牲にすることができます。

UIImageとし、imageとします。

using(NSData pngImage = image.AsPNG()){ 
    byte[] imageBytes = pngImage.ToArray(); 
    // upload your image data, write to a file, etc. 
} 

// AsJPEG compression argument can be 0 to 1 
// 0 is max compression (lowest quality), 1 is best quality 
using(NSData jpgImage = image.AsJPEG(0.0f)){ 
    byte[] imageBytes = jpgImage.ToArray(); 
    // upload your image data, write to a file, etc. 
} 

また試してみて、特定のしきい値以下に画像サイズを取得するために圧縮の値を小さくするとループ内でAsJPEGを使用することができます。それは少し遅いかもしれませんので、あなたの特定の使用のために利点を重み付けする必要があります。

+0

ありがとう..... .....私のために働いた:) –

+0

@VibhaRKedilaya喜んで私は助けることができます。ハッピーな発展。 – dylansturg

+0

Xamarin Androidで同じことを実装する考えはありますか? –

関連する問題