注:我不是一个VB6的程序员 - 我负责在生产中使用的应用程序在Android程序员,我有责任,讨论我的Android设备VB6程序的同事。
过去我们VB6程序发送微软.bmps到Android设备,但现在我们要添加药片我们的产品清单,并想送更大的图像利用平板电脑的额外的房地产,我们发现,.BMP的是过大,阻塞网络。
最后,我们正在与.NET一个更换旧VB6的产品,但直到我们做的是没有任何方法,VB6为位图编程转换成JPEG? 我的同事不知道一个,但我总是发现SO是在我的领域(安卓,.NET)非常有用的,所以我想我会在这里尝试VB6的问题。
2002年,微软发布了Windows®图像获取自动化库V2.0工具:图像采集和处理组件,用于VB和脚本 。
此可以接受来自一个文件或字节数组.BMP或甚至原始的Windows的24位像素的位图(加上宽度及高度)并将其转换为JPEG,产生一个文件或字节数组的结果。
图书馆是Windows现代版本中的一部分,但是可以安装到的WinXP(SP1或更高)。
简单的文件到文件的例子:
Dim ImgF As WIA.ImageFile
Dim ImgP As WIA.ImageProcess
Set ImgF = New WIA.ImageFile
ImgF.LoadFile "Zapotec.bmp"
Set ImgP = New WIA.ImageProcess
With ImgP
.Filters.Add .FilterInfos!Convert.FilterID
.Filters.Item(1).Properties!FormatID.Value = wiaFormatJPEG
.Filters.Item(1).Properties!Quality.Value = 70
Set ImgF = .Apply(ImgF)
End With
ImgF.SaveFile "Zapotec.jpg"
上述MarkJ的链接是值得一试,但这里有其他三条思路来考虑:
http://freeimage.sourceforge.net/
http://www.vb-helper.com/howto_vb6_net_save_image.html
http://www.mvps.org/emorcillo/en/code/vb6/savejpggdip.shtml
FreeImage是一个开源库; 有一个下载,其包括能够由VB6可以使用DLL。
VB的助手链接到一篇文章通过VB.NET DLL实现从VB6使用.NET的。
最后,MVPS链路是VB6代码保存使用GDI +到JPG图像。
是的,它可以! 查看星球源代码这杰出的贡献
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=50065&lngWId=1
Bob77出色的答案让我在正确的轨道上,但下载链接不再可用。 由于Vista中微软已经包含在Windows中WIA支持。
请参阅Microsoft的Windows图像采集自动化层页面的全部细节。
我发现,代码段所需的代码的初始部分被调整以参考附带WIA类,它现在被称为WIACtl。
Dim ImgF As WIACtl.ImageFile
Dim ImgP As WIACtl.ImageProcess
Set ImgF = New WIACtl.ImageFile
ImgF.LoadFile "Zapotec.bmp"
Set ImgP = New WIACtl.ImageProcess