我正在尝试从PictureBox导出图片,但问题在于导出图片的高度(宽度正常工作)。
我还发现VB6边框对导出图片的大小有重大影响所以我将其设置为0.
只需打开vb6放一个PictureBox(并将其重命名为myPic)......
这是我的代码:
Option Explicit
Private Sub Form_Load()
myPic.AutoRedraw = True
myPic.BorderStyle = 0
myPic.Appearance = 0
myPic.Width = 100 * Screen.TwipsPerPixelX 'WORKING PERFECTLY!!!
myPic.Height = 100 * Screen.TwipsPerPixelY 'NOT RETURN 100px !!! Why ? 93px instead
myPic.ScaleMode = vbPixels
myPic.PaintPicture LoadPicture(App.Path & "\Source.bmp"), 0, 0, 100, 100
myPic.Picture = myPic.Image
SavePicture myPic.Picture, App.Path & "\Exported.bmp"
End Sub
任何想法?
提前致谢!
答案 0 :(得分:0)
我尝试了你的代码,它按照我的意图工作:它在100x100图片框中显示source.bmp并将其导出为100x100像素的bmp
我使用的代码是:
Option Explicit
Private Sub Form_Load()
With Picture1
.AutoRedraw = True
.ScaleMode = vbPixels
.BorderStyle = 0
.Appearance = 0
.Width = 100 * Screen.TwipsPerPixelX 'WORKING PERFECTLY!!!
.Height = 100 * Screen.TwipsPerPixelY 'NOT RETURN 100px !!! Why ? 93px instead
.PaintPicture LoadPicture("c:\temp\Source.bmp"), 0, 0, 100, 100
.Picture = .Image
SavePicture .Picture, "c:\temp\Exported.bmp"
End With 'Picture1
End Sub
我只是将.Scalemode放到顶部,因为我认为它属于它所在的位置,但是你的代码也适用于你拥有它的.Scalemode。
您能否添加想要重新缩放的图片?
对于源我使用下面的图片,即300x300像素:
结果是: