2017-07-18 22 views
1

Xamarinを使用してAndroidからデータベースにダウンスケーリングされたビットマップを送信する必要があります。ビットマップをバイト[]配列にロード

そうするために、私はグライドまたはピカソについて読む。 Glideは最高の画像ライブラリと思われたので、Glide-Xamarin 3.7.0をインストールしました。

しかし、(URIからの)既存のビットマップを読み込み、特定の[ish]解像度にダウンスケールし、それをバイト[]配列に保存して私が呼び出しているWebサービスで送信する方法はありません。

誰かがそのレシピを知っている場合は、非常に感謝します。

ありがとうございます!

+0

私はこれを見てきました...私のXamarinライブラリでは利用できないメソッドがあります:/ AsBitmap()とToBytes()にアクセスできない --- 'Glide.with(context) .load("/user/profile/photo/path ") .asBitmap() .toBytes() .centerCrop() .into(新しいSimpleTarget (250、250){@Override ます。public void onResourceReady(バイト[]データ、GlideAnimationのアニメーション){// ポストあなたバイトをバックグラウンドスレッドにアップロードしてここにアップロードします。 } }); ' --- – MaxD

答えて

1

は最後に、私はこのワンライナーは、私がCompressAsyncを呼び出すことができ、そこからリサイズしたビットマップを返しピカソ

var bitmap = Picasso 
      .With(context) 
      .Load(originalBitmapUri) 
      .Resize(reqWidth, reqHeight) 
      .CenterInside() 
      .OnlyScaleDown() 
      .Get(); 

でそれをやった(。)

using (var stream = new MemoryStream()) 
{ 
    await bitmap.CompressAsync(Bitmap.CompressFormat.Jpeg, quality, stream); 
    return stream.ToArray(); 
} 
関連する問題