类似windows explorer的图片浏览器

简介: windows explore在查看文件中有查看缩略图这一选项,他的实质就是从thumbs文件中读取出已经生成的缩略图文件然后做为image显示出来 在网上有如何读出thumbs文件的类库,今天使用这个类库模仿一下window explorer类库的源地址http://www.petedavis.net/MySite/DynPageView.aspx?pageid=31 原理读出thumb

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);
    }

}

 

相关文章
|
计算机视觉 C++
基于Qt的简易图片浏览器设计与实现
基于Qt的简易图片浏览器设计与实现
573 1
|
4月前
|
前端开发
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
WebView2 控件(基于 Microsoft Edge (Chromium) 的嵌入式浏览器控件),保存资源(图片、脚本、CSS)
282 37
|
Windows
【报错】在浏览器输入localhost为什么启动的是Microsoft的IIS windows首页?
【报错】在浏览器输入localhost为什么启动的是Microsoft的IIS windows首页?
225 0
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
1584 1
|
XML 缓存 JSON
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
628 0
|
Web App开发 JavaScript 前端开发
使用 JS 实现在浏览器控制台打印图片 console.image()
在前端开发过程中,调试的时候,我们会使用 console.log 等方式查看数据。但对于图片来说,仅靠展示的数据与结构,是无法想象出图片最终呈现的样子的。 虽然我们可以把图片数据通过 img 标签展示到页面上,或将图片下载下来进行预览。但这样的调试过程实在是复杂,何不实现一个 console.image() 呢?
353 1
使用 JS 实现在浏览器控制台打印图片 console.image()
|
Web App开发 前端开发
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
canvas保存图片时,谷歌浏览器Chrome报错【解决方案】Not allowed to navigate top frame to data URL
636 0
|
缓存 算法 API
视觉智能开放平台产品使用合集之如何在Web浏览器中查看处理后的图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
278 0
|
域名解析 应用服务中间件 对象存储
解决阿里云oss图片浏览器访问直接下载而不是打开
解决阿里云oss图片浏览器访问直接下载而不是打开
7412 0
|
机器人 Linux 数据安全/隐私保护
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
Python办公自动化【Windows中定时任务、OS/linux 系统定时任务 、Python 钉钉发送消息、Python 钉钉发送图片】(九)-全面详解(学习总结---从入门到深化)
610 0

热门文章

最新文章