我使用Base64編碼字符串轉換圖像,然後在Windows Server上創建它。
它在大多數設備上工作正常,但它在android版本2.3.5中給出錯誤java.lang.OutOfMemoryError。我試過android:largeHeap="true"
,但它沒有工作。
的Android代碼:java.lang.OutOfMemoryError :(堆大小= 17863KB,分配的= 11272KB,位圖大小= 12444KB)
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);
我想給裁剪圖像選項的用戶,然後將其保存在Windows服務器。有沒有什麼容易和更好的方法呢?
我在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有** **蜂窩API 3.0 –
也許添加Android的代碼,而不是因爲錯誤是在它的身邊? – Migol
@Molol檢查更新後的Android代碼。 –