2

注意:我不是 VB6 程序员 - 我是负责制造中使用的应用程序的 Android 程序员,我有一位同事负责与我的 Android 设备对话的 VB6 程序。

过去我们的 VB6 程序将 Microsoft .bmps 发送到 Android 设备,但现在我们正在将平板电脑添加到我们的产品列表中,并且想要发送更大的图像以利用平板电脑的额外空间,我们发现 .bmp 是太大会阻塞网络。

最终我们将用 .Net 替换旧的 VB6 产品,但在我们这样做之前,VB6 有没有办法以编程方式将位图转换为 JPEG?我的同事不知道,但我一直发现 SO 在我的领域(Android、.Net)中非常有用,所以我想我会在这里尝试一个 VB6 问题。

4

4 回答 4

5

2002 年,Microsoft 发布了Windows® Image Acquisition Automation Library v2.0 Tool:用于 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"
于 2012-07-04T06:00:01.967 回答
0

MarkJ 上面的链接值得一看,但这里还有其他三个需要考虑的想法:

FreeImage 是一个开源库;有一个下载,其中包括一个可供 VB6 使用的 DLL。

VB Helper 链接指向一篇文章,通过 VB.NET DLL 从 VB6 使用 .NET。

最后,MVPS 链接是使用 GDI+ 将图像保存为 JPG 的 VB6 代码。

于 2012-07-03T20:05:58.143 回答
0

是的,它可以!在 Planet 源代码上查看此出色的贡献

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=50065&lngWId=1

于 2013-05-27T21:50:47.657 回答
0

Bob77 的出色回答让我走上了正轨,但下载链接不再可用。自 Vista 以来,Microsoft 已在 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
于 2013-08-01T15:12:47.253 回答