Я использую кодировку Base64 для преобразования изображения, а затем создаю его на Windows Server.
Он работает нормально на большинстве устройств, но он дает ошибку java.lang.OutOfMemoryError в android Version 2.3.5. Я пробовал android:largeHeap="true"
, но он не работает.
Android Код:java.lang.OutOfMemoryError: (Размер кучи = 17863 КБ, выделенный = 11272 КБ, размер растрового изображения = 12444 КБ)
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] data = baos.toByteArray();
strBase64 = Base64.encodeToString(data, Base64.DEFAULT);
Я хочу дать кадрирование изображения для пользователя, а затем сохранить его на сервере окон. Есть ли легкий и лучший способ для этого?
Мой код в asp.net:
public System.Drawing.Image Base64ToImage(string base64String)
{
byte[] imageBytes = Convert.FromBase64String(base64String);
using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
{
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms, true);
return image;
}
}
System.Drawing.Image convertedImage = Base64ToImage(Photo);
convertedImage.Save(Server.MapPath("~\\images\\profileImg\\jeeten.jpg"), System.Drawing.Imaging.ImageFormat.Jpeg);
Я попробовал некоторые обрезку коды изображения, но он дал ошибку: Произошла общая ошибка в GDI +.
* андроида: largeHeap = "истинный" * является intruduced с ** Honeycomb ** API 3,0 –
Может быть, добавить в Android код вместо поскольку ошибка на его стороне? – Migol
@ Migol проверить обновленный пост для Android-кода. –