Поврежденное изображение при расшифровке строки base64 в изображение JPEG - PullRequest
0 голосов
/ 01 июля 2019

Мое приложение для 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])

Это означает, что после данных нет строки: image / png; base64.Но я проверил, что строка есть прямо перед запросом поста.Если я приму во внимание всю полученную строку, то получу изображение в виде зеленого оттенка, которое является постоянным независимо от полученного изображения.

Я что-то упустил?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...