天天看點

類似windows explorer的圖檔浏覽器

windows explore在檢視檔案中有檢視縮略圖這一選項,他的實質就是從thumbs檔案中讀取出已經生成的縮略圖檔案

然後做為image顯示出來

在網上有如何讀出thumbs檔案的類庫,今天使用這個類庫模仿一下window explorer

類庫的源位址

<a href="http://www.petedavis.net/mysite/dynpageview.aspx?pageid=31">http://www.petedavis.net/mysite/dynpageview.aspx?pageid=31</a>

原理讀出thumbs檔案中的圖像并生成一個picturebox數組,顯示圖像并放置到窗體上,在picturebox被單擊時,擊發一個事件

将原圖顯示出來

類似windows explorer的圖檔浏覽器

private string[] allfilename; 

類似windows explorer的圖檔浏覽器

thumbdblib.thumbdb test;

類似windows explorer的圖檔浏覽器

private picturebox[] allimage;

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

private void button1_click(object sender, system.eventargs e)

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

...{

類似windows explorer的圖檔浏覽器

    this.invalidate();

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    test=new thumbdb(this.textbox1.text);

類似windows explorer的圖檔浏覽器

    allfilename=test.getthumbfiles();

類似windows explorer的圖檔浏覽器

    allimage=new picturebox[allfilename.length];

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    int x=0,y=50;

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    int i=0;

類似windows explorer的圖檔浏覽器

    foreach(string bb in allfilename)

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    ...{

類似windows explorer的圖檔浏覽器

        allimage[i]=new picturebox();

類似windows explorer的圖檔浏覽器

        allimage[i].location=new point(x,y);

類似windows explorer的圖檔浏覽器

        image gotimg=test.getthumbnailimage(bb);

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

        x+=80;

類似windows explorer的圖檔浏覽器

        if(x&gt;this.width)

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

        ...{

類似windows explorer的圖檔浏覽器

            x=0;

類似windows explorer的圖檔浏覽器

            y+=80;

類似windows explorer的圖檔浏覽器

        }

類似windows explorer的圖檔浏覽器

        allimage[i].image=gotimg;

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

        allimage[i].size=new size(75,75);

類似windows explorer的圖檔浏覽器

        allimage[i].sizemode=pictureboxsizemode.stretchimage;

類似windows explorer的圖檔浏覽器

        allimage[i].click+=new eventhandler(imagecontrol_click);

類似windows explorer的圖檔浏覽器

        allimage[i].tag=bb; 

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

        this.controls.add(allimage[i]);

類似windows explorer的圖檔浏覽器

        //this.refresh();

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

        i++;

類似windows explorer的圖檔浏覽器

    } 

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

}

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

/**//// &lt;summary&gt;

類似windows explorer的圖檔浏覽器

/// 當使用者單擊時顯示大圖檔

類似windows explorer的圖檔浏覽器

/// &lt;/summary&gt;

類似windows explorer的圖檔浏覽器

/// &lt;param name="sender"&gt;&lt;/param&gt;

類似windows explorer的圖檔浏覽器

/// &lt;param name="e"&gt;&lt;/param&gt;

類似windows explorer的圖檔浏覽器

private void imagecontrol_click(object sender, eventargs e)

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    form showbig=new form();

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    string filename=utitlity.getdirfromfilename(textbox1.text)+"/"+(sender as picturebox).tag;

類似windows explorer的圖檔浏覽器

    picturebox pb=new picturebox();

類似windows explorer的圖檔浏覽器

    bitmap showmap=new bitmap(filename);

類似windows explorer的圖檔浏覽器

    pb.image=showmap;

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    pb.size=new size(showmap.width,showmap.height);

類似windows explorer的圖檔浏覽器

    showbig.size=new size(showmap.width,showmap.height);

類似windows explorer的圖檔浏覽器

    pb.location=new point(0,0);

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    showbig.controls.add(pb);

類似windows explorer的圖檔浏覽器

    if(showbig.showdialog()==dialogresult.ok)

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

        showbig.dispose();

類似windows explorer的圖檔浏覽器

    }

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

public class utitlity

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

    /**//// &lt;summary&gt;

類似windows explorer的圖檔浏覽器

    /// 從檔案名中取出檔案路徑

類似windows explorer的圖檔浏覽器

    /// &lt;/summary&gt;

類似windows explorer的圖檔浏覽器

    /// &lt;param name="filename"&gt;檔案名&lt;/param&gt;

類似windows explorer的圖檔浏覽器

    /// &lt;returns&gt;檔案所在的路徑&lt;/returns&gt;

類似windows explorer的圖檔浏覽器

    public static string getdirfromfilename(string filename)

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

        string[] allpart=filename.split('/');            

類似windows explorer的圖檔浏覽器

        return filename.replace(allpart[allpart.length-1],string.empty);

類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器
類似windows explorer的圖檔浏覽器

繼續閱讀