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

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

用vb6設(shè)計縮略圖技巧的圖片瀏覽器

[摘要]相信每個編程愛好者都非常熟悉ACD SEE,它的縮略圖察看功能和對種類繁多的圖片文件的支持使它成為使用最廣泛的圖片瀏覽軟件之一。現(xiàn)在,我們也可以輕松的設(shè)計一個具有縮略圖察看功能的圖片瀏覽器,它能夠支持JPG、GIF、JPEG、BMP、WMF、DIB、ICO、CUR等格式圖片文件。(一)編程思路; ...
相信每個編程愛好者都非常熟悉ACD SEE,它的縮略圖察看功能和對種類繁多的圖片文件的支持使它成為使用最廣泛的圖片瀏覽軟件之一。現(xiàn)在,我們也可以輕松的設(shè)計一個具有縮略圖察看功能的圖片瀏覽器,它能夠支持JPG、GIF、JPEG、BMP、WMF、DIB、ICO、CUR等格式圖片文件。

(一)編程思路;

  性能良好的圖片瀏覽器首先要能夠支持廣泛的圖片文件格式 ,這一點VB6基本控件picture已經(jīng)為我們做好了。我們所要考慮的是如何將一幅圖片極其清晰的按照設(shè)定大小顯示到“容器”中——“容器”可以是多種多樣的,而且要充分利用動態(tài)創(chuàng)建和卸載控件技術(shù),以便適應(yīng)不同目錄所含有的不同個數(shù)的圖片,當(dāng)然正確、有序排列縮略圖片也是非常關(guān)鍵的。

  我在這里向大家展示利用動態(tài)創(chuàng)建COMMAND(按鈕)控件作為載體的實現(xiàn)方法,它不僅可以以縮略圖方式進(jìn)行圖片預(yù)覽和全屏圖片瀏覽,而且可以自動隨窗體的變化進(jìn)行相應(yīng)的伸展——注意本文關(guān)于界面容器、縮略圖載體容器和縮略圖載體的概念。

(二)界面設(shè)計;

  (1)添加四個command控件command(1——8)Style = 1 ’Graphical,caption屬性分別是“選擇”、“瀏覽”、“預(yù)覽”(縮略圖察看)、“上一張”、“下一張”、“向下”、“向上”、“退出”——這些按鈕用來進(jìn)行系統(tǒng)相關(guān)操作,它們是可以添加圖片的;

  (2)添加一個filelist控件filhidden,設(shè)置其 Pattern= "*.bmp;*.dib;*.rle;*.gif;*.jpg;*.wmf;*.emf;*.ico;*.cur",visible=fales——該文件列表控件用來讀取選中目錄下的所有圖片文件名稱,程序運行時是不可見的;

  (3)添加picture控件picFrame作為界面容器;在其上面添加四個picture控件picSlide作為縮略圖載體容器,picload設(shè)置autosize=true作為緩沖圖片要以原格式裝載圖片,picThumb用來裝載縮略后的圖片;一個VScrollBarL控件vsbSlide——用來進(jìn)行圖片調(diào)整,以便在縮略圖較多時能夠進(jìn)行相應(yīng)的調(diào)整,picture1用來全屏顯示圖片;設(shè)置上述所有圖片控件ScaleMode=3’Pixel;它們用來進(jìn)行界面調(diào)整和縮略圖片的生成;

  (4)在縮略圖載體容器picslide上面添加命令按鈕command控件數(shù)組原型com(0),設(shè)置其 Style = 1 ’Graphical、Visible = 0 ;——用來作為縮略圖片的載體;

  (5)添加一個StatusBar控件St ——用來顯示有關(guān)的信息;

  (6)單擊"工程"菜單項目,選擇"部件",在部件對話框的"控件"欄目中選擇"MICROSOFT WINDOWS COMMON CONTROLS 6.0",確認(rèn)在它前面的復(fù)選框中有一個黑色的對號,單擊"確認(rèn)",添加對該控件的引用。添加一個progressbar控件pb——用來顯示縮略圖的集成進(jìn)度;

  (7)添加定時器timer1——用來實行圖片的幻燈瀏覽;按層次調(diào)整上述控件到適當(dāng)位置(如圖片1所示);



(三)程序源代碼;

Option Explicit
Dim Apath As String, Pi As Integer, bZ As Integer
.......

Private Declare Function StretchBlt Lib "GDI32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

//本函數(shù)用來對圖片進(jìn)行縮放處理,生成縮略圖片
.......

Private Sub CreateThumbs()

//本函數(shù)用來創(chuàng)造縮略圖片,并且將它們放到足夠的

file://縮略圖載體com(i)中

Dim lIdx As Long
Dim lFilCnt As Long
Dim sText As String, i As Integer
Screen.MousePointer = vbHourglass

//設(shè)置鼠標(biāo)指針為漏斗類型

picSlide.Move 0, 0, Com(0).Width, Com(0).Height
picSlide.Visible = True

//初始化縮略圖容器載體

Pr.Visible = True
Pr.Value = 0
Pr.Max = filHidden.ListCount
Pr.Min = 0

//啟動進(jìn)度條

Com(0).Picture = LoadPicture
Com(0).Visible = False
If Com.Count > 1 Then
For i = 1 To Com.Count - 1
Unload Com(i)
Next
End If
$$$AGESEP$$$
//初始化縮略圖載體com

On Error Resume Next

file://忽略錯誤

file://lFilCnt = filHidden.ListCount
For lIdx = 0 To filHidden.ListCount - 1
Load Com(lIdx)
Com(lIdx).Caption = filHidden.List(lIdx)
Com(lIdx).Visible = True
Pr.Value = 1
Next lIdx

//創(chuàng)建所需要的所有縮略圖載體

file://載體的個數(shù)等于選定目錄下圖片文件個數(shù)

Call Form_Resize

//對載體進(jìn)行排序

DoEvents
For lIdx = 0 To filHidden.ListCount - 1
picLoad.Picture = LoadPicture()
picThumb.Cls
picLoad.Picture = LoadPicture(Apath & filHidden.List(lIdx))
StretchBlt picThumb.hdc, 0, 0, picThumb.Width, picThumb.Height,picLoad.hdc, 0, 0, _ picLoad.ScaleWidth, picLoad.ScaleHeight, vbSrcCopy
Set Com(lIdx).Picture = picThumb.Image

//按順序為載體添加縮略圖片

DoEvents
Pr.Value = lIdx + 1
Next lIdx
Set picLoad.Picture = LoadPicture()
Set picThumb.Picture = LoadPicture()
Pr.Visible = False
Screen.MousePointer = 0

//釋放占用的資源、隱藏進(jìn)度條、恢復(fù)鼠標(biāo)指針

End Sub
.......
Private Sub filHidden_PathChange()
$$$AGESEP$$$
//當(dāng)文件目錄改變時計算出標(biāo)準(zhǔn)的目錄變量

file://顯示有關(guān)的目錄和圖片文件個數(shù)信息

file://調(diào)用縮略圖創(chuàng)建過程函數(shù)

//......

CreateThumbs
End Sub
Private Sub Form_Resize()

file://本函數(shù)用來對程序界面控件位置進(jìn)行相應(yīng)的調(diào)整

file://并且調(diào)整縮略圖的位置

Dim X As Long
Dim Y As Long
Dim lIdx As Long
Dim lCols As Long
If Me.WindowState <> vbMinimized Then
If Me.Width < 600 * Screen.TwipsPerPixelX Then
Me.Width = 600 * Screen.TwipsPerPixelX
ElseIf Me.Height < 378 * Screen.TwipsPerPixelY Then
Me.Height = 378 * Screen.TwipsPerPixelY
end if

//限定軟件界面的最小寬度和高度

Else
picFrame.Move 2, Command1.Height, Me.ScaleWidth - 11, Me.ScaleHeight - Command1.Height - St.Height
vsbSlide.Move picFrame.ScaleWidth - vsbSlide.Width, 0, vsbSlide.Width, picFrame.ScaleHeight
lCols = Int((picFrame.ScaleWidth - vsbSlide.Width) / Com(0).Width)
For lIdx = 0 To Com.Count - 1
X = (lIdx Mod lCols) * Com(0).Width
Y = Int(lIdx / lCols) * Com(0).Height
Com(lIdx).Move X, Y
Next lIdx
picSlide.Width = lCols * Com(0).Width
picSlide.Height = Int(Com.Count /lCols)*Com(0).Height
If Int(Com.Count / lCols) < (Com.Count / lCols) Then
picSlide.Height = picSlide.Height + Com(0).Height
End If
vsbSlide.Value = 0
vsbSlide.Max = picSlide.Height - picFrame.ScaleHeight
If vsbSlide.Max < 0 Then
vsbSlide.Max = 0
vsbSlide.Enabled = False
Else
vsbSlide.Enabled = True
vsbSlide.SmallChange = Com(0).Height
vsbSlide.LargeChange = picFrame.ScaleHeight
End If
End If
Pr.Top = St.Top + 8
Pr.Left = St.Panels(4).Left + 6
Picture1.Move (picFrame.Width - Picture1.Width) / 2, (picFrame.Height - Picture1.Height) / 2
End Sub
........
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
$$$AGESEP$$$
file://如果被全屏瀏覽的圖片較大時

file://可以用鼠標(biāo)拖動圖片來瀏覽全貌

ReleaseCapture
SendMessage Picture1.hwnd, WM_SYSCOMMAND, SC_MOVE, 0
End Sub
.......
Private Sub vsbSlide_Change()

//當(dāng)縮略圖較多時可以移動滑塊進(jìn)行瀏覽

picSlide.Top = -vsbSlide.Value
End Sub

(四)運行調(diào)試

  本文程序展示了有關(guān)縮略圖預(yù)覽等的全部核心技術(shù),至于界面、縮略圖載體容器和載體可以由編程愛好者們自由發(fā)揮、改造。為了加快縮略圖集成速度,大家可以考慮使用多線程內(nèi)存文件映射技術(shù)——相信你很快就可以和ACD一較高下了!


主站蜘蛛池模板: 日本亚洲高清 | 四虎出品 | 色综合久久天天综合 | 亚洲欧洲在线观看 | 亚洲欧美日韩伦中文 | 午夜男人的天堂 | 一级做a爰片欧美aaaa | 亚洲高清在线看 | 又粗又大又长又爽免费视频 | 日本成人高清视频 | 四虎库| 日韩经典中文字幕 | 亚洲性大片 | 天天躁日日躁 疯人影院 | 四虎精品福利视频精品 | 小明www永久在线看 小黄鸭b站视频在线 | 亚洲精品亚洲人成在线观看麻豆 | 天天综合色天天综合 | 日韩视频在线免费 | 亚洲最色网| 香蕉免费一区二区三区 | 日韩免费片 | 五月婷婷丁香在线 | 天天操天天干天天操 | 伊人网在线免费视频 | 中文字幕不卡 | 亚洲 中文 欧美 日韩 在线 | 婷婷四房综合激情五月性色 | 在线天堂中文在线资源网 | 日本一区二区视频在线观看 | 色迷迷网免费站视频在线观看 | 污污网站国产精品白丝袜 | 偷自视频区视频真实在线 | 天天爱天天做色综合 | 青青草原导航 | 天天摸夜夜添狠狠添2018 | 青草视频在线播放 | 青青草国产在线视频 | 午夜欧美精品久久久久久久久 | 孕妇三片高清在线观看 | 欧美专区第一页 |