做了一个单机版的门禁系统,本是要2月份上线的.
可是上次在导入相片的时候,却发生了一个意想不到的问题:5G的硬盘提示空间不足.
800多张没有导入完成竟发生空间不足,请教大家一下,有没有办法在图片存储到数据库的时候进行压缩,
800多个 JPG 文件才10多M,为什么一到数据库就有几G了呢?请大家帮帮忙想想办法?
谢谢了.
可是上次在导入相片的时候,却发生了一个意想不到的问题:5G的硬盘提示空间不足.
800多张没有导入完成竟发生空间不足,请教大家一下,有没有办法在图片存储到数据库的时候进行压缩,
800多个 JPG 文件才10多M,为什么一到数据库就有几G了呢?请大家帮帮忙想想办法?
谢谢了.
Zlib API for VB Demo.zip 可以到QQ群:11141442 的共享上面取得。
我是按下面的代码写的,大家看看要怎么修改法. Dim PBag As New PropertyBag
Dim x() As Byte, n() As Byte, iRe As String
PBag.WriteProperty "Picture", photoPicture.Picture
x() = PBag.Contents
rsType.AddNew
rsType.Fields("empid") = lsEmpID
rsType.Fields("picmax").AppendChunk x()
rsType.Fields("Re") = lsRe
rsType.Update
谢谢了.
解决办法:直接利用IPersistStream接口和IStream接口,根据stdpicture得到byte数组,前提是载入jpg图片后,不要改变picturebox的picture属性(比如,先在picturebox上进行绘图,然后使用set picture1.picture=picture1.image之类的语句,就不能使用这种方法),有关代码可以参考:
http://community.csdn.net/Expert/topic/4124/4124451.xml?temp=.3227503另外一个思路就是直接根据jpg的文件格式写,用这种方法没有我上面说的限制,但jpg格式比较复杂,不过zyl910已经写出来了,你可以联系它索取代码最后,你也可以从jpg文件直接读出数据到byte数组(这个你应该会吧,比较基础的东东),这个可能会涉及到显示图片的同步问题,由于不知道你为什么用picturebox,所以,这个担心可能是多余的上面的三种方法都是获得byte数组的,而有了byte数组之后,你就可以直接调用AppendChunk了