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

明輝手游網(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爰片毛片免费看 | 天天射天天摸 | 日本亚洲乱码中文字幕影院 | 欧美一区二区三区在线观看 | 日韩精品国产自在欧美 | 天天干天天综合 | 月婷婷色狠狠 | 亚洲欧美日韩高清一区二区三区 | 日日摸夜夜搂人人要 | 欧美中文在线 | 天堂网在线最新版官网 | 最新国产网址 | 天天操天天干天天爽 | 日韩亚洲欧美综合一区二区三区 | 亚洲永久免费视频 | 四虎免费永久观看 | 天堂bt资源新版在线 | 日本免费观看网站 | 日本视频中文字幕一区二区 | 性xxx视频在线观看 性xxx欧美 | 亚洲精品亚洲人成在线播放 | 色小妹综合| 日韩香蕉网 | 亚洲区色 | 色噜噜狠狠在爱丁香 | 倩女还魂在线观看完整版免费 | 日本免费专区 | 最近免费观看高清韩国日本大全 | 日韩精品久久不卡中文字幕 | 羞羞影院男女午夜爽爽影视 | 青草免费免费观看视频在线 | 天天操天天操天天操 | 性久久久久久 | 日本理论视频 | 一本久久道aa兔费看 | 日本欧美人xxxxx在线观看 | 天天天天添天天拍天天谢 | 日本一本久| 日本高清免费不卡在线播放 | 日本一二三区高清 | 最近新韩国日本免费看 |