我正在使用Xamarin Studio开发Android应用程序以捕获图片然后将其发送到Web服务。
步骤如下:
oImagenFace.ImagenDocumento =(string)Base64ToBitmapDrawableConverter.ConvertBack(BitmapFactory.DecodeFile (imagepath));
此时我收到了Out of Memory Exception
,但我无法调整图片大小(如http://developer.android.com/training/displaying-bitmaps/load-bitmap.html所述),因为我需要原始大小。图像大约是200Kb。
答案 0 :(得分:0)
您是否尝试跳过BitmapFactory.DecodeFile,并将整个文件转换为Base64? SG。像这样:
oImagenFace.ImagenDocumento =(string)Base64ToBitmapDrawableConverter.ConvertBack(imagepath);
如果这样做无济于事,我会尝试按块读取文件并将其转换为Base64。
答案 1 :(得分:0)
这只是一小段代码。它可以将任何图像从Android发送到您的网站 服务器
System.Net.WebClient Client = new System.Net.WebClient();
Client.Headers.Add("Content-Type", "binary/octet-stream");
byte[] result = Client.UploadFile("localhost/FolderName/upload.php", "POST", path);
string s = System.Text.Encoding.UTF8.GetString(result, 0, result.Length);
这是PHP代码{upload.php}。在中创建文件夹名称{Uploads} 你的申请。
<?php
$uploads_dir = 'uploads/'; //Directory to save the file that comes from client application.
if ($_FILES["file"]["error"] == UPLOAD_ERR_OK)
{
$tmp_name = $_FILES["file"]["tmp_name"];
$name = $_FILES["file"]["name"];
move_uploaded_file($tmp_name, "$uploads_dir/$name");
}
?>