将base64字符串解密为jpeg图像时损坏的图像

时间:2019-07-01 15:21:41

标签: php android http post base64

我的android应用正在将位图图像(临时捕获)作为base64编码的字符串发送到远程服务器。下面的代码。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
takenImage.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);

现在我正在使用以下代码解密图像

function base64_to_jpeg($base64_string, $output_file) {
    // open the output file for writing
    $ifp = fopen( $output_file, 'wb' );

     #spliting the string on commas
     #$data[ 0 ] == "data:image/png;base64"
     #$data[ 1 ] == <actual base64 string>
     $data = explode( ',', $base64_string );

    // we could add validation here with ensuring count( $data ) > 1
    fwrite( $ifp, base64_decode( $data[ 1 ] ));   #

    // clean up the file resource
    fclose( $ifp );

    return $output_file;
    }

现在我得到一个错误

Undefined offset : 1 at base64_decode($data[1])

这意味着在data:image / png; base64部分之后没有字符串。但是我已经测试过字符串是否在发布请求之前。 如果我考虑整个接收到的字符串,那么我得到的图像将是绿色阴影图像,与所拍摄的图像无关,该图像是恒定的。

我想念什么吗?

0 个答案:

没有答案