2017-07-18 35 views
1

我必須從Android(使用Xamarin)向我的數據庫發送縮減比特位圖。將調整大小的位圖加載到byte []數組中

爲此,我讀了關於Glide或畢加索的內容。 Glide似乎是最好的圖片庫,所以我安裝了Glide-Xamarin 3.7.0。

但我不知道如何加載現有的位圖(從URI),縮小到特定的[ish]分辨率並將其保存到一個byte []數組中,以便通過我打電話的Webservice發送它。

如果有人知道那個配方,將不勝感激。

謝謝!

+0

我已經看到了這個...但有些方法不適用於我的Xamarin庫:/ 我無權訪問AsBitmap()和ToBytes() --- 'Glide.with(context) .load(「/ user/profile/photo/path「) .asBitmap() .toBytes() .centerCrop() .into(新SimpleTarget (250,250){ @覆蓋 公共無效onResourceReady(字節[]數據,GlideAnimation阿尼姆){// 你的後字節添加到後臺線程並將其上傳到此處。 } });' --- – MaxD

回答

1

最後我做到了與畢加索

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

這一個班輪返回我一個位圖大小,從中我可以叫CompressAsync(。)

using (var stream = new MemoryStream()) 
{ 
    await bitmap.CompressAsync(Bitmap.CompressFormat.Jpeg, quality, stream); 
    return stream.ToArray(); 
}