[英]Can VB6 save an image as a JPEG?
注意:我不是VB6程序員-我是負責生產中使用的應用程序的Android程序員,並且我的同事負責與我的Android設備對話的VB6程序。
過去,我們的VB6程序將Microsoft .bmps發送到Android設備,但是現在我們要將平板電腦添加到我們的產品列表中,並且想要發送更大的圖像以利用平板電腦的額外房地產,我們發現.bmp是太大而阻塞了網絡。
最終,我們用.Net替代了舊的VB6產品,但是直到我們這樣做之前,VB6還是無法通過編程將位圖轉換為JPEG嗎? 我的同事沒有意識到這一點,但我一直發現SO在我的域(Android,.Net)中非常有用,所以我想在這里嘗試VB6問題。
2002年,Microsoft發布了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鏈接值得一看,但是這里還有另外三個要考慮的想法:
FreeImage是一個開源庫; 有一個下載文件,其中包含可以由VB6使用的DLL。
VB幫助程序鏈接指向通過VB.NET DLL通過VB6使用.NET的文章。
最后,MVPS鏈接是VB6代碼,可使用GDI +將圖像保存為JPG。
是的,它可以! 在Planet源代碼中查看此傑出貢獻
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=50065&lngWId=1
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.