真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vb.net實現(xiàn)摳圖的簡單介紹

Vb.net怎么實現(xiàn)圖像的處理

這問題有點籠統(tǒng),軟糖來說說把:

成都創(chuàng)新互聯(lián)公司長期為成百上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為龍陵企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站制作,龍陵網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

圖像處理由System.Drawing命名空間負(fù)責(zé)。

主要是Bitmap類和Graphics類。

Bitmap表示一個位圖,可以是BMP,JPG,PNG等文件。

裝載位圖

Dim?位圖?As?Bitmap?=?Bitmap.FromFile("C:\Image1.PNG")

Graphics表示一張畫紙,能夠進行繪制操作。

它可以被窗體、控件、位圖調(diào)用CreateGraphics()方法來創(chuàng)建。

然后調(diào)用Graphics.Draw開頭的一系列函數(shù)來繪制圖像和圖形,F(xiàn)ill開頭的填充圖形。

創(chuàng)建畫紙并繪制位圖

Dim?畫紙?As?Graphics?=?Me.CreateGraphics()

畫紙.DrawImage(位圖,?100,?100,?256,?256)

可以將上面三行放到Form1_Load中測試,把路徑改一下,

還可以把Me改為能在上面繪圖的控件的名稱。

更多內(nèi)容請看MSDN的System.Drawing命名空間。

如滿意,請采納,謝謝。

vb.net調(diào)用photoshop

將photoshop TypeLibrary通過引用調(diào)用,就可以用它的函數(shù)了.強烈建議你下載photoshop6.0 sdk里面有一個vb的例子,如果你要寫程序,就必須要用到他模塊里面的一些聲明.不過他的資料也給的很少,只可實現(xiàn)一些簡單函數(shù)(實現(xiàn)基本操作),較復(fù)雜的只有自己寫了(由于資料不全,比較困難)

photoshop6.0 sdk在下載,好好研究一下那個vb例子

,以后可以自己寫出更多的函數(shù)

VB.Net如何實現(xiàn)摳圖并繪圖

項目中要用圖形來顯示一個閥門的開度,以及控制閥的開度。本來是要用什么公司買的控件中的餅圖之類的實現(xiàn),不過我覺得也是麻煩,就想,還是自己畫吧。

首先添加一個TrackBar,名字是“TrackBar1”,一個label,名字是“L_A_SHANG”,一個GroupBox,名字是“GB_RIGHT”,,然后添加拉動滾動條時的處理函數(shù)

'上位機控制

Dim m_start As Integer

Dim RcDraw As System.Drawing.Rectangle

Private Sub TrackBar1_Scroll(ByVal sender As Object, ByVal e As System.EventArgs) Handles TrackBar1.Scroll

m_start = (100 - TrackBar1.Value)

Me.L_A_SHANG.Text = Me.TrackBar1.Value.ToString

GB_RIGHT.Invalidate() '重畫GB_RIGHT

End Sub

添加GB_RIGHT重畫時的處理函數(shù)

Private Sub GB_RIGHT_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles GB_RIGHT.Paint

RcDraw.X = TrackBar1.Location.X - 40

RcDraw.Y = 20

RcDraw.Height = 100

RcDraw.Width = 20

e.Graphics.DrawRectangle(New Pen(Color.Blue, 5), RcDraw)

Dim i = TrackBar1.Location.X - 40

For i = TrackBar1.Location.X - 40 To TrackBar1.Location.X - 20

e.Graphics.DrawLine(New Pen(Color.Blue, 5), i, m_start + 20, i, 120)

Next

Me.L_A_SHANG.Text = Me.TrackBar1.Value.ToString + "%"

End Sub

到此以及可以實現(xiàn)拉動條的時候,圖像跟著變化,并顯示百分比。

怎樣用VB把一張圖片透明的放到Picture里,在線等

Public Function TranBlt(DestHdc As Long, X As Long, Y As Long, W As Long, H As Long, srcHdcOrBmp As Long, Optional srcX As Integer, Optional srcY As Integer, Optional srcW As Long, Optional srcH As Long, Optional tc As Long = -1, Optional IsBmp As Boolean) As Long

'srcHdcOrBmp參數(shù) 傳入的可以是hdc也可以是Bmp對象的Handle,

'IsBmp參數(shù) 為真時srcHdcOrBmp代表Bmp對象的Handle,為假時代表hdc

'返回值 成功時返回透明色,不成功時返回-1

Dim tHdc(3) As MemHdc

Dim J As Long, oc As Long, I As Long, Bm As BITMAP, cc As Long, NewDc As Long

Dim sw As Long, sh As Long, sBmp As Long, sHdc As Long, obm As Long, NewX As Long, NewY As Long

If DestHdc = 0 Or srcHdcOrBmp = 0 Or W = 1 And H = 1 Then GoTo fail

If IsBmp Then '若傳入的是Bmp句柄,需為其創(chuàng)建一個臨時DC

sBmp = srcHdcOrBmp

tHdc(3) = NewMyHdc(DestHdc, 0, 0, srcHdcOrBmp)

sHdc = tHdc(3).hdc

Else

sHdc = srcHdcOrBmp

If srcW = 0 Then sBmp = GetCurrentObject(sHdc, 7)

End If

If sHdc = 0 Or sBmp = 0 Then GoTo fail

If srcW = 0 Then '若沒有提供源圖大小,需取得整個源圖大小

GetObj sBmp, Len(Bm), Bm

sw = Bm.bmWidth - srcX

sh = Bm.bmHeight - srcY

Else

sw = srcW

sh = srcH

End If

If sw 1 Or sh 1 Then GoTo fail

If tc = -1 Then

cc = GetPixel(sHdc, srcX, srcY) '將左上角第一個像素作為源圖背景色,用于透明

Else

cc = tc

End If

If W sw Or H sh Then

tHdc(2) = NewMyHdc(DestHdc, W, H)

StretchBlt tHdc(2).hdc, 0, 0, W, H, sHdc, srcX, srcY, sw, sh, vbSrcCopy

'先將源圖縮放,下面步驟就一樣了。

NewDc = tHdc(2).hdc

Else

NewDc = sHdc

NewX = srcX

NewY = srcY

End If

BitBlt DestHdc, X, Y, W, H, NewDc, NewX, NewY, vbSrcInvert

'將源圖先反色(XOR)繪入目標(biāo)圖,若源圖背景為黑色,此步可省

'下面是制作Mask圖的方法

I = CreateBitmap(W, H, 1, 1, ByVal 0) '建立單色位圖

tHdc(0) = NewMyHdc(DestHdc, 0, 0, I) '為單色圖建立新DC,并選入

tHdc(1) = NewMyHdc(DestHdc, W, H) '另建一個彩色圖及DC,用于存放Mask圖

oc = SetBkColor(NewDc, cc) '將源圖背景色改為透明色

BitBlt tHdc(0).hdc, 0, 0, W, H, NewDc, NewX, NewY, vbSrcCopy

'先將源圖繪入單色DC,由此產(chǎn)生只有正反的Mask圖,背景色(透明色)為黑,其它為白

SetBkColor NewDc, oc '恢復(fù)源圖背景色,不是必須的,但這是個好習(xí)慣。

BitBlt tHdc(1).hdc, 0, 0, W, H, tHdc(0).hdc, 0, 0, vbSrcCopy

'單色DC必須復(fù)制進彩色DC才能進行后面的的AND運算

'Mask圖完成,并已放入彩色DC

BitBlt DestHdc, X, Y, W, H, tHdc(1).hdc, 0, 0, vbSrcAnd '標(biāo)準(zhǔn)透明繪圖:選將Mask圖用And運算繪入,

BitBlt DestHdc, X, Y, W, H, NewDc, NewX, NewY, vbSrcInvert '再將源圖以反色(XOR)繪入一次

DelMyHdc tHdc(0)

DelMyHdc tHdc(1)

If tHdc(2).hdc 0 Then DelMyHdc tHdc(2)

If tHdc(3).hdc 0 Then DelMyHdc tHdc(3)

TranBlt = cc

Exit Function

fail:

If tHdc(3).hdc 0 Then DelMyHdc tHdc(3)

TranBlt = -1

End Function

Private Function NewMyHdc(dHdc As Long, W As Long, H As Long, Optional Bm As Long) As MemHdc

With NewMyHdc

.hdc = CreateCompatibleDC(dHdc)

If Bm = 0 Then

.Bmp = CreateCompatibleBitmap(dHdc, W, H)

Else

.Bmp = Bm

End If

.obm = SelectObject(.hdc, .Bmp)

End With

End Function

Private Function DelMyHdc(MyHdc As MemHdc, Optional nobmp As Boolean) As MemHdc

With MyHdc

If .hdc 0 And .obm 0 Then SelectObject .hdc, .obm

If nobmp = False And .Bmp 0 Then DeleteObject .Bmp

If .hdc 0 Then DeleteDC .hdc

End With

End Function

把這個函數(shù)放在一個BAS里,然后在窗體里

TranBlt pic.hdc, X,Y,W,H,PIC2.Picture.Handle, _

TX,TY,TW,TH, , True

就OK


本文標(biāo)題:vb.net實現(xiàn)摳圖的簡單介紹
文章分享:http://weahome.cn/article/dojjsde.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部