我有一个包含 BLOB数据的sqlite数据库。
每个BLOB字段都包含图像。
(具体来说,这个数据库是由Maperitive创建的,Maperitive是一个生成的工具 mbtiles)
我想减少每个BLOB字段的大小,以减少sqlite数据库的大小。
到目前为止,我所做的是:
我创建了一个
的PHP脚本1)读取BLOB字段,将它们转换为图像(.jpgs)并将图像存储在名为' BLOB2IMAGES'的新目录中。
<?php
file_put_contents("./BLOB2IMAGES/". $currentImage, $BLOB_DATA);
?>
2)之后,我使用了一个名为
的外部工具
ImageMagick。此工具有几个命令以修改图像。我使用 mogrify命令 覆盖
图像通过修改图像的质量。
在这种情况下的大小 减少了图像
mogrify -format jpg -quality 75% -path "C:\BLOB2IMAGES" "C:\BLOB2IMAGES\*.jpg"
3)然后我创建了第二个PHP脚本来读取
BLOB2IMAGES目录,将每个压缩图像转换为字节数组并存储
sqlite数据库中的字节数组。 (注意:我创建了
一个新的sqlite数据库,以存储&#39;新的&#39;减小大小的BLOB数据。)
<?php
$byte_array_of_Compressed_image =file_get_contents(("./BLOB2IMAGES/". $compressedImage);
?>
我注意到在第一次将BLOB数据转换为图像(.jpgs)时,生成的图像的质量不是很好,我不喜欢这样。然后我创建了一个简单的JAVA程序,它将BLOB数据转换为图像,我再次注意到质量不太好。
通常,我想减小BLOB数据的大小,所以我按照前面的步骤进行操作。 有没有其他方法可以减少BLOB数据的大小? 任何工具或任何其他扩展? 我应该使用与我已经使用过的方法不同的方法吗?
如果你能给我解决方案或与我的问题有关的想法,我会很高兴。
先谢谢