如何在sqlite数据库中压缩BLOB数据以减小其大小?

时间:2014-05-24 15:37:18

标签: php sqlite imagemagick size blob

我有一个包含 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数据的大小? 任何工具或任何其他扩展? 我应该使用与我已经使用过的方法不同的方法吗?

如果你能给我解决方案或与我的问题有关的想法,我会很高兴。

先谢谢

0 个答案:

没有答案
相关问题