vb 关于图片尺寸和占用空间大小的问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 08:50:56
由于用数码相机拍摄的JPG文件都非常占用空间,而且非常多,大的甚至几个兆,为了网络上载方便,我想使用VB编辑一个软件批量对这些图片进行减肥。
我的思路是:
1。用Loadpicture把图片Load到Picture1中
2。然后用PaintPicture将其尺寸压缩大原来的1/4
3。再将压缩尺寸后的图片报存为JPG
----
Picture1.Picture = LoadPicture(xpath)
Picture2.Width = Picture1.Width / 2
Picture2.Height = Picture1.Height / 2
Picture2.Cls
Picture2.PaintPicture Picture1.Picture, 0, 0, Picture2.Width, Picture2.Height, 0, 0
-----
MkDir Dir1.Path & "\Done\"
SavePicture Picture2.Image, Dir1.Path & "\Done\" & xstr & "-m.jpg"
----
现在的问题是以上程序都没有问题但是结果与我的目标相反了。
图片的尺寸的确降低了,但是占用的空间却增大了不少。
一个300多K的文件转换后竟有1.37M,
我该怎么办?
希望大家多提意见阿!

http://www.programfan.com/club/showpost.asp?id=28144
你参考下这个吧。

你load的时候使用的是jpg格式但是save的时候使用的是BMP格式,所以尺寸会变大,VB中没有提供直接的语句保存成JPG格式的,你这个方法不可行

附savepicture的说明

参考资料了的链接是如何保存成JPG的,很复杂,你可以参考一下

SavePicture 语句

从对象或控件(如果有一个与其相关)的 Picture 或 Image 属性中将图形保存到文件中。

语法

SavePicture picture, stringexpression

SavePicture 语句的语法包含下面部分:

参数 描述
picture 产生图形文件的 PictureBox 控件或 Image 控件。
stringexpression 欲保存的图形文件名。

说明

无论在设计时还是运行时图形从文件加载到对象的 Picture 属性,而且它是位图、图标、元文件或增强元文件,则图形将以原始文件同样的格式保存。如果它是 GIF 或 JPEG 文件,则将保存为位图文件。

Image 属性中的图形总是以位图的格式保存而不管其原始格式。

savepicture保存的格式是位图,bmp,自然很大了,你给他硬加个后缀名.jpg是没有用的。可以去用些别人写好的免费的dll类库,比如jpeg.dll
http://www.vbaccelera