❶ vb如何把一個文件夾中的所由圖片縮小到指定尺寸,並保存
先打開指定圖片,創建DC,將此圖片hdc賦予DC,然後用StretchBlt 函數縮小到指定尺寸,然後從DC中取出圖片,並保存
❷ VB中如何才能自動放大縮小圖片填充到圖片框中啊
實現代碼:
VERSION 5.00
BeginVB.FormForm1
Caption="使用PictureBox控制項實現圖像放大和縮小"
ClientHeight=5580
ClientLeft=60
ClientTop=345
ClientWidth=7935
LinkTopic="Form1"
ScaleHeight=5580
ScaleWidth=7935
StartUpPosition=3'窗口預設
BeginVB.PictureBoxPicture1
AutoRedraw=-1'True
AutoSize=-1'True
Height=3960
Left=-15
Picture="Form1.frx":0000
ScaleHeight=3900
ScaleWidth=6240
TabIndex=2
Top=15
Width=6300
End
BeginVB.CommandButtonCommand2
Caption="放大"
Height=360
Left=6540
TabIndex=1
Top=5070
Width=1140
End
BeginVB.CommandButtonCommand1
Caption="縮小"
Height=360
Left=5160
TabIndex=0
Top=5070
Width=1140
End
End
AttributeVB_Name="Form1"
AttributeVB_GlobalNameSpace=False
AttributeVB_Creatable=False
AttributeVB_PredeclaredId=True
AttributeVB_Exposed=False
DimiAsInteger
DimjAsInteger
PrivateSubCommand1_Click()
Picture1.Cls
i=i-100:j=j-100
Picture1.PaintPicturePicture1.Picture,0,0,i,j
Picture1.Width=i:Picture1.Height=j
EndSub
PrivateSubCommand2_Click()
Picture1.Cls
Picture1.Width=i:Picture1.Height=j
i=i+100:j=j+100
Picture1.PaintPicturePicture1.Picture,0,0,i,j
EndSub
PrivateSubForm_Load()
i=Picture1.Width:j=Picture1.Height
Picture1.Cls
EndSub
VB6.0通過PictureBox控制項實現圖片放大和圖片縮小功能
其它方法:
例子前請先下載Gdiplus.tlb,並將其放置到C:\Windows\System32中
Gdiplus.tlb下載
VisualBasiccode
使用Gdiplus.tlb,將其放到system32中,然後添加對其的引用
手動設置Form的AutoRedraw=True,ScaleMode=Pixels
OptionExplicit
DimlngGraphicsAsLong
DimlngImageHandleAsLong
DimlngTextureBrushAsLong
DimgpPAsGpStatus
DimlngPen1AsLong
DimlngTokenAsLong
PrivateSubCommand1_Click()
DimintPAsInteger
gpP=GdipCreateFromHDC(Me.hDC,lngGraphics)'創建繪圖區域設備場景
gpP=GdipLoadImageFromFile(App.Path&"\啟動.png",lngImageHandle)'讀取圖片到內存
gpP=GdipDrawImage(lngGraphics,lngImageHandle,0,0)'等大小繪制
gpP=GdipDrawImageRect(lngGraphics,lngImageHandle,200,0,300,300)'在指定的區域內繪制(放大或縮小)
gpP=GdipDrawImageRectRectI(lngGraphics,lngImageHandle,550,0,400,400,20,20,80,80,UnitPixel)'在400*400的區域內顯示圖片部分區域
gpP=GdipCreateTexture(lngImageHandle,WrapModeTile,lngTextureBrush)'設置一定排列方式的刷子平鋪方式
gpP=GdipFillRectangle(lngGraphics,lngTextureBrush,0,300,400,300)'在指定區域內按指定的格式繪制圖片
IflngGraphics<>
IflngImageHandle<>
IflngTextureBrush<>
Me.Refresh
EndSub
PrivateSubForm_Load()
DimbolPAsBoolean
WithMe
.Caption="GDIPlus範例"
.Width=960*15
.Height=720*15
.Left=(Screen.Width-.Width)*0.5
.Top=(Screen.Height-.Height)*0.5
EndWith
GpInput.GdiplusVersion=1
IflngToken=0ThenbolP=(GdiplusStartup(lngToken,GpInput)=Ok)
EndSub