六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

用VB設計圖像濾鏡

[摘要]作者:任毅 PhotoShop圖像處理軟件最引人之處莫過于它的濾鏡功能,如果你掌握了一些VB的知識,那么你也能夠設計出圖像處理大師級的濾鏡效果。    首先你必須了解VB中圖像處理的一些基本知識。在VB中有兩個操作像素的基本方法:PSet和Point。PSet生成像素;Point則讀取像素值。...
作者:任毅

PhotoShop圖像處理軟件最引人之處莫過于它的濾鏡功能,如果你掌握了一些VB的知識,那么你也能夠設計出圖像處理大師級的濾鏡效果。

    首先你必須了解VB中圖像處理的一些基本知識。在VB中有兩個操作像素的基本方法:PSet和Point。PSet生成像素;Point則讀取像素值。并且顯示器上所能顯示的所有顏色都可以用RGB值來表示,VB中提供了RGB()函數,有三個變量RGB(Red,Green,Blue),如RGB(255,0,0)表示紅色,RGB(255,255,0)表示黃色等。 VB中沒有提供將一個像素點的顏色返回成RGB值的函數,但我們可以用以下方法獲得某一點的RGB值:

    Pi& = Picture.Point(X, Y)

    Red = Pi& Mod 256

    Green = ((pi& And &HFF00) / 256&) Mod 256&

    Blue = (pi1& And &HFF0000) / 65536

    有了以上知識,再通過一些濾鏡算法便可以產生一些很不錯的濾鏡效果。在此以浮雕、木刻、油畫和燈光共四個濾鏡效果為例。

    具體操作步驟如下:

    新建一個窗體 Form1,在圖體上建立一個Picture1圖像框,將其AutoSize的值設為 Ture,然后用Picture1的LoadPicture()命令調入一幅圖像,再通過各種事件調用過濾過程(這里以Picture1_Click()事件來調用)。

  以下為具體代碼:

    Private Sub Form_Load()

     Form1.AutoRedraw = True

     Form1.ScaleMode = 3

     Picture1.AutoRedraw = True

     Picture1.ScaleMode = 3

     Picture1.Picture = LoadPicture(圖像文件全途徑名)

    End Sub

  浮雕
浮雕的算法是在相鄰像素的差值上加上一個常數,使黑暗區域增加一些亮度,我們可以取同一行、同一列或對角線上的相鄰像素間的差值加上一個常數。

   Private Sub Picture1_Click()

    Dim pi1&, pi2&

    Dim x, y

    Dim A, B As Integer

    Dim Red, Green, Blue As Integer

   A = 1

    B = 1

    xx = Picture1.ScaleWidth

    yy = Picture1.ScaleHeight

    For x = 1 To xx - 2

     For y = 1 To yy - 2

     pi1& = Picture1.Point(x, y)

    pi2& = Picture1.Point(x + A, y + B)

    Red = Abs((pi1& Mod 256) - (pi2& Mod 256) + 128)

    Green = Abs((((pi1& And &HFF00) / 256&) Mod 256&) - (((pi2& And &HFF00) / 256&) Mod 256&) + 128)

    Blue = Abs(((pi1& And &HFF0000) / 65536) - ((pi2& And &HFF0000) / 65536) + 128)

    Picture1.PSet (x, y), RGB(Red, Green, Blue)

    Next y

    Next x

    Picture1.Refresh

    End Sub

  油畫

    油畫濾鏡的算法是:用當前點四周一定范圍內任一點的顏色來代替當前點的顏色。

   Private Sub Picture1_Click()

   Dim pi&

    Dim x, y

   Dim A, B As Integer

   Dim Red, Green, Blue As Integer

   xx = Picture1.ScaleWidth

   yy = Picture1.ScaleHeight

   For x = 2 To xx - 3

    For y = 2 To yy - 3

   A = Rnd * 3 - 1

  B = Rnd * 3 - 1

   pi = Picture1.Point(x + A, y + B)

    Red = (pi& Mod 256)

    Green = (((pi& And &HFF00) / 256&) Mod 256&)

    Blue = ((pi& And &HFF0000) / 65536)

    Picture1.PSet (x, y), RGB(Red, Green, Blue)

    Next y

    DoEvents

    Next x

    Picture1.Refresh

   End Sub

  木刻(圖三)

    這個濾鏡的算法相對簡單一點。只需判斷當前點是淺色還是深色(即三顏色元素的平均值是否大于128),淺色用白色RGB(255,255,255)代替;深色用黑色RGB(0,0,0)代替。

   Private Sub Picture1_Click()

    Dim pi&

    Dim x, y

    Dim A, B As Integer

    Dim Red, Green, Blue As Integer

    A = 1

    B = 1

    xx = Picture1.ScaleWidth

    yy = Picture1.ScaleHeight

    For x = 0 To xx

    For y = 0 To yy

    pi = Picture1.Point(x, y)

   Red = (pi& Mod 256)

   Green = (((pi& And &HFF00) / 256&) Mod 256&)

   Blue = ((pi& And &HFF0000) / 65536)

   If (Red + Green + Blue) / 3 < 128 Then

   Picture1.PSet (x, y), RGB(0, 0, 0)

   Else

   Picture1.PSet (x, y), RGB(255, 255, 255)

   End If

   Next y

   Next x

   Picture1.Refresh

   End Sub

  燈光

    燈光濾鏡的算法很多,這里介紹一種小口徑燈光濾鏡,具體算法是取一點為光源(這里以30,40為例),從光線末端開始向光源點逐漸增加亮度(向白色接近)。代碼為:

   Private Sub Picture1_Click()

    Dim pi1&, pi2&

    Dim x, y

    Dim A, B As Integer

    Dim Red, Green, Blue As Integer

    A = 30

    B = 40

    xx = Picture1.ScaleWidth

    yy = Picture1.ScaleHeight

    For x = 1 To xx

    For y = 1 To yy

    pi1 = Picture1.Point(x, y)

   If Sqr((A - x) * (A - x) + (B - y) * (B - y)) - 40 < 0 Then

   Red = ((pi1& Mod 256) + 200 * (1 - (Sqr((A - x) * (A - x) + (B - y) * (B - y)) + 1) / 40))

   Green = ((((pi1& And &HFF00) / 256&) Mod 256&) + 200 * (1 - (Sqr((A - x) * (A - x) + (B - y) * (B - y)) + 1) / 40))

   Blue = (((pi1& And &HFF0000) / 65536) + 200 * (1 - (Sqr((A - x) * (A - x) + (B - y) * (B - y)) + 1) / 40))

   If Red < 0 Then Red = 0

   If Red > 255 Then Red = 255

   If Green < 0 Then Green = 0

   If Green > 255 Then Green = 255

   If Blue < 0 Then Blue = 0

   If Blue > 255 Then Blue = 255

   Picture1.PSet (x, y), RGB(Red, Green, Blue)

   End If

   Next y

   Next x

   Picture1.Refresh

   End Sub


主站蜘蛛池模板: 天天看夜夜操 | 亚洲视频1区 | 色天使久久综合网天天 | 色婷婷久久合月综 | 欧美一区二区激情三区 | 青草免费在线观看 | 伊人热人久久中文字幕 | 色噜噜 男人的天堂在线观看 | 青青草原在线视频免费观看 | 色视频网站色视频播放 | 天天综合天天干 | 婷婷六月在线 | 真实国产乱子伦精品免费 | 亚洲日本va在线观看 | 在线观看视频污 | 四虎国产精品视频免费看 | 日韩小视频在线播放 | 最近中文字幕资源 | 日韩精品第三页 | 三级黄色在线播放 | 亚洲www在线| 婷婷六月久久综合丁香76 | 日本三级在在线观看 | 亚洲国产精品欧美日韩一区二区 | 日韩中文字幕在线观看视频 | 在线视频一区二区日韩国产 | 青草精品在线 | 色姣姣狠狠撩综合网 | 四虎成人免费网站在线 | 欧美视频一区 | 欧美一区二区三区精品 | 午夜在线视频国产 | 日韩性视频网站 | 人人插人人舔 | 青草久久网 | 四虎精品视频在线永久免费观看 | 色综合久久88中文字幕 | 性综合网 | 午夜影院视频 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片人呢 | 亚洲福利网站 |