我想在JSON Web服务中将图像发送到服务器(通过在JSON post方法中使用字符串参数),我想从URI路径获取图像。
答案 0 :(得分:1)
以下类是我用来从给定网址下载图片(在我的情况下是jpeg)。它是我自己的代码中的一块,因此可能存在一些项目特定的东西。只需阅读以下内容:)。
public class BitmapFromUrl
{
private Bitmap myBitmap;
public BitmapFromUrl(String imageUrl)
{
URL myImageURL = null;
try
{
myImageURL = new URL(imageUrl);
}
catch (MalformedURLException error)
{
Log.e("tag", "The URL could not be formed from the provided String" + error);
}
if((myImageURL != null) && (imageUrl != null)) {
try
{
HttpURLConnection connection = (HttpURLConnection)myImageURL .openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
myBitmap = BitmapFactory.decodeStream(input);
}
catch (IOException e)
{
Log.e("tag", "The Bitmap could not be downloaded or decoded!" + e);
}
} else {
Log.e("tag", "The provided URL(\"" + imageUrl + "\") does not seem to be valid.");
myBitmap = null;
}
}
public Bitmap getBitmap()
{
return myBitmap;
}
}
要发送获取此图像的字符串,您可以使用以下内容:
Bitmap bm = BitmapFactory.decodeFile("/thePathToYour/image.jpeg");
ByteArrayOutputStream output = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, output); //bm is the bitmap object
byte[] bytes = output.toByteArray();
String base64Image = Base64.encode(bytes, Base64.DEFAULT);
现在您将图像作为字符串。在服务器上,您可以使用服务器编程语言的Base64方法将其更改回映像。
json.put(WebConstant.JSON_PUT_PROPERTY_BUZZ_IMAGE, base64Image);
这应该可以胜任。
答案 1 :(得分:0)
在您的行中:
json.put(WebConstant.JSON_PUT_PROPERTY_BUZZ_IMAGE, " SEND IMAGE as URI ");//buzzInfoBean.getBuzzImage());
“将图像作为URI发送”应该是最有可能的base64编码字符串,我不知道服务器期望什么,但这是最常见的。
的答案从本地uri获取图像
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri1)