我已成功使用Parse从设备上传和下载声音片段。 我正在尝试类似的事情,但是有了图像。 我有一个imageView,其中包含用户选择的图像。 我希望将此图像作为parseFile嵌套在parseObject中(称为" profileParseObject")
我看过这篇文章:Putting image from gallery in ParseFile android
然而,使用:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.usman);
导致'名称'位图'在当前背景下不存在' (我不知道我需要什么样的装配参考。)
所以问题是:我无法将imageView中的数据转换为byte []以将其发送到解析.... 另外,如果我成功了,我将如何从解析中检索它然后将这些数据放回到imageView中?
这是我尝试上传的内容,并提前感谢您的帮助!
byte [] ImageData;
ImageData = _imageView.ToArray<byte>();
ParseFile file = new ParseFile("profilePic.png", ImageData);
profileParseObject["profilePicture"] = file;
if (canUpdate)
{
await profileParseObject.SaveAsync();
Console.WriteLine("Sucessfully updated your information");
}
else
{
Console.WriteLine("Cannot update");
}
编辑:我更改了代码以使用toArray();这已编译但我从设备收到以下错误:
System.InvalidCastException:无法从&#39; android / widget / ImageView&#39;到&#39; [B&#39;。 在/Users/builder/data/lanes/monodroid-mlion-monodroid-4.20-series/ba9bbbdd/source/monodroid/src/Mono中的Android.Runtime.JNIEnv.AssertCompatibleArrayTypes(IntPtr sourceArray,System.Type destType)[0x0001a]。安卓/ src目录/运行/ JNIEnv.cs:744 在Android.Runtime.JNIEnv.GetArray [Byte](IntPtr array_ptr)[0x00026] /Users/builder/data/lanes/monodroid-mlion-monodroid-4.20-series/ba9bbbdd/source/monodroid/src/Mono.Android/ SRC /运行/ JNIEnv.cs:1207 在/Users/builder/data/lanes/monodroid-mlion-monodroid-4.20-series/ba9bbbdd/source/monodroid/src/Mono.Android/src/中的Java.Lang.Object.ToArray [Byte]()[0x00000] java.lang中/ Object.cs:338 在PlugIt.Profile + d__7.MoveNext()[0x005ff]
任何想法!?
答案 0 :(得分:0)
ToArray是一种方法,因此您需要添加开括号和闭括号。
ImageData = _imageVIew.ToArray<byte>();
编辑:
问题是你试图将imageView控件转换为字节数组。您需要做的是首先从imageView获取图像,然后将该图像转换为字节数组。
//1. Get the Bitmap
BitmapDrawable drawable = imageView.GetDrawable();
Bitmap bitmap = drawable.GetBitmap();
//2. Compress the bitmap into a stream and use that to get the byte array
byte[] imageData;
using(MemoryStream stream = new MemoryStream())
{
bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
imageData = stream.ToArray();
}