Я извлекаю изображение в виде байтового архива, хранящегося в базе данных, преобразую его в растровое изображение и отображаю в Imageview. Я хочу иметь возможность получить это изображение из ImageView и сохранить его обратно в базу данных. Код для поиска в моей базе данных:
TheService myService = new TheService.DataInterface();
DataSet MyPhoto = myService.GetPhoto(id);
byte[] imageBytes = (byte[])MyPhoto.Tables[0].Rows[0][0];
Bitmap bitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
imageview.SetImageBitmap(bitmap);
В какой-то момент изображение изменилось, и мне нужно сохранить его обратно в базе данных. Как бы я получить изображение из изображения? Все, что я видел до сих пор, имеет дело с прикрепленным рисованным элементом, в этом случае никакого рисованного не существует.
Кажется, нет такого метода, как:
Bitmap photo = imageview.GetCurrentImage();
Любая помощь будет оценена.
**** ОБНОВЛЕНО ****
Как только я получу изображение, мне нужно преобразовать его в байтовый массив, чтобы сохранить его в базе данных. Я пробовал несколько разных методов безуспешно, последний из них:
using Java.Nio;
public static byte[] ImageToByte(Bitmap bitmap)
{
var bytes = new Byte[30000];
try
{
var byteBuffer = ByteBuffer.Allocate(bitmap.ByteCount);
bitmap.CopyPixelsToBuffer(byteBuffer);
bytes = byteBuffer.ToArray<byte>();
return bytes;
}
catch (Exception ex)
{
var message = ex.Message;
return bytes;
}
}
Это генерирует исключение "Невозможно привести из 'java / nio / HeapByteBuffer' к '[B'"