相关疑难解决方法(0)

直接在数据库中存储图像还是作为base64数据存储?

在数据库中存储图像的常用方法是base64在存储数据之前将图像转换为数据.此过程将使尺寸增加33%.或者,可以将图像直接存储为BLOB; 例如:

$image = new Imagick("image.jpg");
$data = $image->getImageBlob();
$data = $mysqli->real_escape_string($data);
$mysqli->query("INSERT INTO images (data) VALUES ('$data')");
Run Code Online (Sandbox Code Playgroud)

然后显示图像

<img src="data:image/jpeg;base64,' .  base64_encode($data)  . '" />
Run Code Online (Sandbox Code Playgroud)

使用后一种方法,我们节省了1/3的存储空间.为什么base64在MySQL数据库中存储图像更常见?

更新:关于在数据库中存储图像的优点和缺点有很多争论,大多数人认为这不是一种实用的方法.无论如何,在这里我假设我们将图像存储在数据库中,并讨论了这样做的最佳方法.

mysql database base64 image imagemagick

53
推荐指数
3
解决办法
13万
查看次数

如何使用Flutter将BASE64字符串转换为Image?

我正在将保存在Firebase数据库中的图像转换为Base64,并希望对其进行解码和编码.我研究了类似的问题,但我仍然遇到错误.这是我到目前为止的情况?

var image1 = String;

var pic = event.snapshot.value['image'];
var photo = BASE64.decode(pic);
image1 = photo;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误...

A value of type "List<int>" cannot be assigned to a variable of type "Type"

如果你能提供一个反向过程来将图像编码到Base64中,那么它们可以保存回Firebase,这将是值得赞赏的.

***更新

这是我的更新代码,仍然会抛出错误.

image1 = event.snapshot.value['image'];
var image = BASE64.decode(image1.toString());
new Image.memory(image),
Run Code Online (Sandbox Code Playgroud)

错误是......

FormatException: Invalid Length must be a multiple of 4

base64 image list converter flutter

17
推荐指数
6
解决办法
2万
查看次数

标签 统计

base64 ×2

image ×2

converter ×1

database ×1

flutter ×1

imagemagick ×1

list ×1

mysql ×1