。net 不用api就行
專注于為中小企業(yè)提供成都網站建設、成都網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)寬城免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了1000多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現規(guī)模擴充和轉變。
縮放操作
Function 縮放(ByVal bitmap As Bitmap, ByVal 倍數 As Single) As Bitmap
Dim w As Integer = bitmap.Width * 倍數
Dim h As Integer = bitmap.Height * 倍數
Dim tem As New Bitmap(w, h)
Dim g As Graphics = Graphics.FromImage(tem)
g.DrawImage(bitmap, New Rectangle(0, 0, w, h), New Rectangle(0, 0, bitmap.Width, bitmap.Height), GraphicsUnit.Pixel)
g.Dispose()
Return tem
End Function
鼠標滾輪事件 MouseWheel
MouseEventArgs.Delta 值可以判斷滾動方向
Sub 圖片縮放()
Dim SngPer As Single = 1 '放大或縮小的比例 放大2倍時SngPer=2,縮小3倍時 SngPer=1/3
Dim PicOld As Image = Image.FromFile("原圖片路徑")
Dim PicNew As New System.Drawing.Bitmap(PicOld, PicOld.Width * SngPer, PicOld.Height * SngPer)
PicNew.Save("新圖片路徑", Drawing.Imaging.ImageFormat.Jpeg)
End Sub
實現代碼:
VERSION 5.00
BeginVB.FormForm1
Caption="使用PictureBox控件實現圖像放大和縮?。?/p>
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
DimGpInputAsGdiplusStartupInput
PrivateSubCommand1_Click()
DimintPAsInteger
gpP=GdipCreateFromHDC(Me.hDC,lngGraphics)'創(chuàng)建繪圖區(qū)域設備場景
gpP=GdipLoadImageFromFile(App.Path&"\啟動.png",lngImageHandle)'讀取圖片到內存
gpP=GdipDrawImage(lngGraphics,lngImageHandle,0,0)'等大小繪制
gpP=GdipDrawImageRect(lngGraphics,lngImageHandle,200,0,300,300)'在指定的區(qū)域內繪制(放大或縮?。?/p>
gpP=GdipDrawImageRectRectI(lngGraphics,lngImageHandle,550,0,400,400,20,20,80,80,UnitPixel)'在400*400的區(qū)域內顯示圖片部分區(qū)域
gpP=GdipCreateTexture(lngImageHandle,WrapModeTile,lngTextureBrush)'設置一定排列方式的刷子平鋪方式
gpP=GdipFillRectangle(lngGraphics,lngTextureBrush,0,300,400,300)'在指定區(qū)域內按指定的格式繪制圖片
IflngGraphics<>0ThenGdipDeleteGraphicslngGraphics
IflngImageHandle<>0ThenGdipDisposeImagelngImageHandle
IflngTextureBrush<>0ThenGdipDeleteBrushlngTextureBrush
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
Pegasus的ImagXpress 8.0控件,支持各種格式文件的加載。控件封裝了右鍵局部區(qū)域放大的功能,要實現圖片的縮放,把AutoResize屬性設置為PegasusImaging.WinForms.ImagXpress8.AutoResizeType.CropImage,修改 ZoomFactor的值就可以了。
實現代碼如下:
Dim img As Image = Image.FromFile("D:\Image\tstImage.jpg") 'tstImage是原先的圖片
Dim grfx As Graphics = Me.CreateGraphics
grfx.DrawImage(img, 0, 0, img.Width * 3, img.Height * 3) '在Form里顯示
Dim imgnew As New System.Drawing.Bitmap(img, img.Height * 3, img.Width * 3) '新建一個放大的圖片
imgnew.Save("D:\Image\tstNewImage.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) '保存放大后圖片
你可以建一個Form,然后在Form里拖進一個Button,把上面的代碼放在Button_Click事件里面,執(zhí)行就行了。
對上面代碼的解釋:
1.要獲取Graphics對象只能從某一事件的參數中獲取或者使用窗體和控件對象的CreateGraphics方法來獲取-----上面代碼使用Me.CreateGraphics來引用這個對象。
2.加載一個圖片用Image類的FromFile或者FromStream方法
3.用DrawImage來顯示一個圖片,該方法有30多個重載方法,可以查MSDN了解細節(jié)。
4.保存時的一個問題:我們必須先建一個對象,用于存縮放圖像。
1.我有個思路可以嘗試一下:把一張字節(jié)數在280-300K的圖片用PS打開看看像素大??;
2.定義一個新的位圖,指定像素大小為上面得到的數據;
3.讀取你需要修改大小的JPG文件,然后按指定大小復制到上面新建的位圖,并保存為JPG格式