gpt4 book ai didi

html - 如何在 excel WebBrowser 控件上调整图像大小

转载 作者:搜寻专家 更新时间:2023-10-31 22:25:53 24 4
gpt4 key购买 nike

我有一个名为 WebBrowser1 的 WebBrowser 控件。

我使用它通过使用此代码的 URL 显示图像。

WebBrowser1.Navigate ("https://cdn2.iconfinder.com/data/icons/modern-latin-alphabet-lowercase-and-uppercase-lett/154/alphabet-uppercase-letter-z-512.png")

效果很好,但图像比 WebBrowser 控件大。

所以我需要调整图像大小以适合 WebBrowser 控件大小。

最佳答案

尝试使用此代码来适应图像宽度:

Sub Test()

UserForm1.Show
UserForm1.WebBrowser1.Navigate "about:blank"
UserForm1.WebBrowser1.Document.Write "<img style=""width:100%;"" src=""https://cdn2.iconfinder.com/data/icons/modern-latin-alphabet-lowercase-and-uppercase-lett/154/alphabet-uppercase-letter-z-512.png"">"

End Sub

现在你可能想要调整图像的高度和宽度,毕竟所有现代浏览器都支持 CSS object-fit,幸运的是除了 IE ;) 所以,让图像适应视口(viewport)保持宽高比有必要找到最小的高度和宽度比,并通过将其设置为 100% 来适应该尺寸的图像。它可以通过嵌入文档的 CSS 或 javascript 来完成,但对于 VBA 目的,下面的代码工作得很好。还添加了 WebBrowser 控件初始化和单独的过程,用于显示定义的图像以增强鲁棒性。

假设有 UserForm1,ShowModal 设置为 False,带有 WebBrowser 控件。将以下代码放在 UserForm 模块中:

Private Sub UserForm_Initialize()

With Me.WebBrowser1
.Navigate "about:blank"
.Document.Write "<body style='background-color: buttonface; overflow: hidden;'></body>"
End With

End Sub

Public Sub displayImage(src)

With Me.WebBrowser1
.Document.Close
.Document.Write "<body id='body' style='background-color: buttonface; overflow: hidden; margin: 0; text-align: center;'><img id='img' src='" & src & "'></body>"
Dim img
Set img = .Document.getElementById("img")
Dim body
Set body = .Document.getElementById("body")
If body.ClientHeight / img.ClientHeight < body.ClientWidth / img.ClientWidth Then
img.Style.Height = "100%"
Else
img.Style.Width = "100%"
End If
End With

End Sub

Test1放在标准模块中调用显示图片:

Sub Test1()

UserForm1.Show
UserForm1.displayImage "/image/B8imb.gif"

End Sub

您还可以将 base64 编码的图像嵌入到代码中(使用任何在线 Base64 图像编码器),参见 Test2 示例:

Sub Test2()

UserForm1.Show
UserForm1.displayImage _
"data:image/png;base64," & _
"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADoklE" & _
"QVR4nO3dwW2DQBBAUYjSaWSKikytTgMcgmS8K/57BaA5fc2BgXV5PF8LkPQ1egBgHAGAMAGAMAGAMAGA" & _
"MAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGA" & _
"MAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAMAGAsO/RA/AZr9+f0SPcyrrto0d4CxsAhAkA" & _
"hAkAhAkAhAkAhAkAhAkAhAkAhAkAhAkAhAkAhLkF4NDV77qfvU2YbZ67sAFAmABAmABAmABAmABAmABA" & _
"mABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmP8CcGi27+TP" & _
"Ns9d2AAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgzC1AxLrto0f4KLcD/2MDgDABgDABgDAB" & _
"gDABgDABgDABgDABgDABgDABgDABgLDb3AJ49/vearcMn2IDgDABgDABgDABgDABgDABgDABgDABgDAB" & _
"gDABgDABgLDb3AKcdfW75WdvE8zDCDYACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMA" & _
"CBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACMv+F2C279KbhxFsABAmABAmABAmABAmABAmABAm" & _
"ABAmABAmABAmABAmABCWvQVYt/3S5599l36meWaahWvZACBMACBMACBMACBMACBMACBMACBMACBMACBM" & _
"ACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACAs+1+A2b5NP9M8M83CtWwAECYA" & _
"ECYAECYAECYAECYAECYAECYAECYAECYAECYAEJa9BZjNuu2XPt/7/RyxAUCYAECYAECYAECYAECYAECY" & _
"AECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECYAECY" & _
"AECYAECYAECYAECYAECYAECYAECYAECYAEDYujyer9FDAGPYACBMACBMACBMACBMACBMACBMACBMACBM" & _
"ACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBMACBM" & _
"ACBMACBMACBMACBMACBMACBMACBMACBMACDsD0NPOfMjSKzzAAAAAElFTkSuQmCC"

End Sub

我发现删除 WebBrowser 控件凹陷边框的最简单方法是...通过将它们移到 UserForm 边框之外(通过设置 Top 和 Left 为负数,以及 Height 和 Width 大于 UserForm)或做同样的事情来简单地“裁剪”在 Frame 控件中,SpecialEffect 设置为 0 且 Caption 为空。

关于html - 如何在 excel WebBrowser 控件上调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37195962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com