【问题标题】:Sending PNGs via PHP web to an Android App通过 PHP Web 将 PNG 发送到 Android 应用程序
【发布时间】:2015-10-07 20:05:58
【问题描述】:

将 PNG 图像从 PHP 传递到 Java 中的 Android 应用程序的最佳方法是什么?

我在 PHP 中尝试过:

$archi=file_get_contents("bar.png");
$archi2=base64_encode($archi);
print($archi2);

在 Java 中:

String img= Base64.decode(str);
byte[] byteArray = img.getBytes();
Bitmap myBitmap=BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);

但我总是得到:

SkImageDecoder::Factory 返回 null

【问题讨论】:

  • 你可以用base64编码图片然后通过JSON发送到Android。
  • 使用 Picasso 库将 png url 直接加载到 ImageView 中。
  • 我已经尝试过对其进行base64_encode并打印,然后在Android上进行base64_decode,并使用BitmapFactory.decodeByteArray来获取PNG图像,但我总是得到:“SkImageDecoder::Factory returned null”。我注意到 base64_encoded 字节的长度与原始字节相同,但解码后的 byteArray 大小不同
  • "best" 是主观的......你应该改写你的问题。另外,添加一些代码以使问题更适合该论坛(例如,“我尝试了此代码 - 并发布了您的代码 - 但它不起作用,这是我得到的错误”)

标签: java php android png


【解决方案1】:

解决了,de Base64 解码到 String 再到 ByteArray。使用以下类直接解码为 ByteArray:

类: https://grizzly.java.net/docs/2.3/xref/org/glassfish/grizzly/http/util/Base64Utils.html

Java 代码:

byte[] bytea = Base64.decode(downloadedStr);
imagen=BitmapFactory.decodeByteArray(bytea,0,bytea.length);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 2014-06-19
    • 2014-09-09
    • 1970-01-01
    相关资源
    最近更新 更多