2012-03-21 1 views
0

android.graphics.bitmap 및 android.net.Uri이 두 가지를 모두 사용할 수 있습니다. 하지만 비트 맵을 가져 와서 바이트로 변환하는 방법을 모르겠습니다. [] 소포를 사용하려했지만 초기화 할 수 없습니다. 비트 맵과 URI 모두에 대해 writetoparcel 메서드에서 사용하면 오류.Android.graphics.bitmap을 바이트 배열로 변경하는 방법 C#

나는 비트 맵 ToArray 메서드를 시도했지만 아무것도하지 않고 빈 배열을 만듭니다. 또한 compress 메서드를 사용하려고했지만 스트림을 초기화 할 수 없습니다. 텍스트 에디터는 추상 클래스 내에서 새로운 Stream을 생성하는 것에 대한 에러를 던집니다.

내가 이것을 할 수있는 몇 가지 참조가 있습니까?

Android.Graphics.Bitmap.CopyPixelsToBuffer (Java.Nio.Buffer) 

또는 :

답변

2

이 내가 바이트 배열로 그것을 얻을하고 크기를 조정하여 결국 것입니다.

Bitmap thumb; 
Android.Net.Uri val; 
this.thumb = MediaStore.Images.Media.GetBitmap(this.ContentResolver, this.val);       
Bitmap scaledThumb = Bitmap.CreateScaledBitmap(this.thumb, 1600, 1200, true);       
MemoryStream stream = new MemoryStream(); 
scaledThumb.Compress(Bitmap.CompressFormat.Jpeg, 50, stream); 
this.byteArr = stream.ToArray(); 
1

내 생각 엔 당신이 사용하고자하는 것입니다

Android.Graphics.Bitmap.GetPixels (int[], int, int, int, int, int, int) 
1

이렇게하는 방법입니다.

byte[] bitmapData; 
using (var stream = new MemoryStream()) 
{ 
    bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream); 
    bitmapData = stream.ToArray(); 
} 
관련 문제