Android Bitmap到base64编码

时间:2016-06-08 17:50:59

标签: java php android bitmap

我正在选择一张图片,然后将其转换为base64编码并使用Google方法使用Google Volley Request发送到我的服务器。

将字符串发送到我的服务器后,我正在使用在线图像解码器工具检查图像,但是我看不到完整的图像。只有一半。

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
编辑:这是我的桌子。

enter image description here

1 个答案:

答案 0 :(得分:0)

Blob对于我的图片来说太小了。我已将其更改为Mediumblob,现在可以正常使用。