Java — растровое изображение Android в base64 кодировать

Я выбираю изображение, затем преобразовываю его в кодировку base64 и отправляю на свой сервер, используя Google Volley Request с методом POST.

После отправки строки на мой сервер я проверяю изображение с помощью онлайн-инструментов для декодирования изображений, но не вижу полностью изображение. Только половина этого.

public String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
return Base64.encodeToString(imageBytes, Base64.DEFAULT);
}

В PHP это выглядит так.

$stmt = $mysqli->prepare('INSERT INTO posts (ownerid, image, timestamp) VALUES (?, ?, ?)');
$stmt->bind_param('dsd', $uid, $image, $time);

И вот когда я пытаюсь прочитать изображение.

$stmt = $mysqli->prepare("SELECT image FROM posts WHERE id = ?");
$stmt->bind_param('d', $id);
$stmt->execute();
$stmt->bind_result($image);
$stmt->fetch();
$data = base64_decode($image);
$img = imagecreatefromstring($data);
imagejpeg($img);
imagedestroy($img);

Ошибка PHP

Warning: imagecreatefromstring(): gd-png: fatal libpng error: Read Error: truncated data in image.php on line 35
Warning: imagecreatefromstring(): gd-png error: setjmp returns error condition in image.php on line 35
Warning: imagecreatefromstring(): Passed data is not in 'PNG' format in image.php on line 35
Warning: imagecreatefromstring(): Couldn't create GD Image Stream out of Data in image.php on line 35
Warning: imagejpeg() expects parameter 1 to be resource, boolean given in image.php on line 36
Warning: imagedestroy() expects parameter 1 to be resource, boolean given in image.php on line 37

РЕДАКТИРОВАТЬ: И вот мой стол.

введите описание изображения здесь

0

Решение

Blob был слишком мал для моих изображений. Я изменил его на Mediumblob, и теперь он работает.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector