类似windows explorer的图片浏览器

原创 2007年10月07日 16:49:00

windows explore在查看文件中有查看缩略图这一选项,他的实质就是从thumbs文件中读取出已经生成的缩略图文件
然后做为image显示出来

在网上有如何读出thumbs文件的类库,今天使用这个类库模仿一下window explorer
类库的源地址
http://www.petedavis.net/MySite/DynPageView.aspx?pageid=31


原理读出thumbs文件中的图像并生成一个picturebox数组,显示图像并放置到窗体上,在picturebox被单击时,击发一个事件
将原图显示出来

private string[] allfilename; 
ThumbDBLib.ThumbDB test;
private PictureBox[] allimage;

private void button1_Click(object sender, System.EventArgs e)
{
    
this.Invalidate();

    test
=new ThumbDB(this.textBox1.Text);
    allfilename
=test.GetThumbfiles();
    allimage
=new PictureBox[allfilename.Length];

    
int x=0,y=50;

    
int i=0;
    
foreach(string bb in allfilename)
    
{
        allimage[i]
=new PictureBox();
        allimage[i].Location
=new Point(x,y);
        Image gotimg
=test.GetThumbnailImage(bb);
 

        x
+=80;
        
if(x>this.Width)
        
{
            x
=0;
            y
+=80;
        }

        allimage[i].Image
=gotimg;
 
        allimage[i].Size
=new Size(75,75);
        allimage[i].SizeMode
=PictureBoxSizeMode.StretchImage;
        allimage[i].Click
+=new EventHandler(ImageControl_Click);
        allimage[i].Tag
=bb; 
        

        
this.Controls.Add(allimage[i]);
        
//this.Refresh();

        i
++;
    }
 

}



/// <summary>
/// 当用户单击时显示大图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>

private void ImageControl_Click(object sender, EventArgs e)
{
    Form showbig
=new Form();

    
    
string filename=Utitlity.GetDirFromFileName(textBox1.Text)+"/"+(sender as PictureBox).Tag;
    PictureBox pb
=new PictureBox();
    Bitmap showmap
=new Bitmap(filename);
    pb.Image
=showmap;

    pb.Size
=new Size(showmap.Width,showmap.Height);
    showbig.Size
=new Size(showmap.Width,showmap.Height);
    pb.Location
=new Point(0,0);
    
    showbig.Controls.Add(pb);
    
if(showbig.ShowDialog()==DialogResult.OK)
    
{
        showbig.Dispose();
    }

    
}



public class Utitlity
{
    
/// <summary>
    
/// 从文件名中取出文件路径
    
/// </summary>
    
/// <param name="filename">文件名</param>
    
/// <returns>文件所在的路径</returns>

    public static string GetDirFromFileName(string filename)
    
{
        
string[] allpart=filename.Split('/');            
        
return filename.Replace(allpart[allpart.Length-1],string.Empty);
    }

}

 

相关文章推荐

Process Explorer windows 下的进程浏览器

Process Explorer 进程浏览器 Introduction Ever wondered which program has a particular file or direct...
  • gxp
  • gxp
  • 2011年09月05日 09:44
  • 322

Explorer 仿windows的资源浏览器

  • 2016年10月08日 11:45
  • 7.8MB
  • 下载

相册图片浏览器(模仿path),效果类似微信朋友圈,效果有优化。

比较通用的图片浏览+动画 效果

js 给div 添加选区,类似windows桌面选区一样,兼容ie6、7、8、9、10、Firefox、Google、所有浏览器

先来一张效果图: 兼容: IE6 反应有点迟钝,效果没有火狐好。 主要的效果就是,模仿windows桌面的那个选区。可以用选框选区图标。 由于js代码太多,只贴一段核心的代码。 ...

c# windows 图片浏览器

  • 2013年06月30日 14:57
  • 48KB
  • 下载

Windows 剪切板的应用——复制浏览器or本地目录图片

一、简述最近看了windows的剪切板相关的应用代码,于是乎,便想将浏览器中复制的图片保存到本地,经过尝试,通过以下代码完成在浏览器中右键选择复制图片,然后监控键盘事件,当按下Ctrl + v 时保存...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:类似windows explorer的图片浏览器
举报原因:
原因补充:

(最多只允许输入30个字)