在服务端有个文件夹下有很多图片,我在客户端winform形式,需要获取这些图片的信息.出来一个列表.列表如下:预览 文件名称 大小 创建时间 .....关键是预览的那个图片信息怎么弄上去.我采用过ImageList,可是那个要预先把图片弄进去,在服务端的图片信息是动态的.
后来想用二进制直接存储到数据库,读出数据库的数据,感觉这样子很麻烦,而且数据量很大.
最好是有类似BS结构的方法,给个地址,直接就能显示出图片来.我知道这个在Webform中很容易实现.请求各位大侠帮帮忙.分数不够可以再送,只求能解决问题.

解决方案 »

  1.   

    我不知道我理解的对不对,试着说一下吧:
    可以在winform中加一个listView 用报表形式。显出文件的名称,大小等信息。信息由
    System.IO.DirectoryInfo  d=new System.IO.DirectoryInfo  (@"c:/");//取得文件夹的地址
     System.IO.FileInfo [] files=d.GetFiles ();//得到文件夹下的文件;
    foreach(System.IO.FileInfo  f in files)
    {
    String file=f.Name +f.LastAccessTime ;//得到文件信息
    listView1.Items .Add(file);//加入listView中;
    }
    在listView的点击事件中调出点击的图片名称。赋值给一个picturebox框
      

  2.   

    <%System.IO.DirectoryInfo  d=new System.IO.DirectoryInfo  (@"c:/");//取得文件夹的地址
     System.IO.FileInfo [] files=d.GetFiles ();//得到文件夹下的文件;
    foreach(System.IO.FileInfo  f in files)
    {String filename=f.Name +f.LastAccessTime ;//得到文件信息
    %>
    <a href="<%filename%>"><img  src="<%filename%" ></a>
    <%
    }
    %>//这段代码写在aspx页中,或者在.cs文件中,用response.write("")输出客户端代码
      

  3.   

    你只是为了实现,直接在Winform中切入Web浏览器控件,做一下算了,
      

  4.   

    我是在winform的模式下~用不来浏览器的控件
      

  5.   

    我尝试过,嵌入浏览器,使用AxSHDocVw.AxWebBrowser控件,可是速度慢的可以啊。本来采用winform的目的就是要速度快。
      

  6.   

    关注。
    建议楼主看看一些开源的图象软件,如ACDSEE等
      

  7.   

    private void getPic()
    {

    ArrayList arr=new ArrayList();
    this.plZP.Controls.Clear();
    DirectoryInfo di=new DirectoryInfo(@"c:/image");
      FileInfo[] files=di.GetFiles("*.BMP");
    for(int x=0;x<files.Length;x++)
    {
    PictureBox pb=new PictureBox(); System.Drawing.Bitmap bm=new System.Drawing.Bitmap(@files[x].FullName);
    ///获取图片缩略图开始
    Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);

    Image img=bm.GetThumbnailImage(200,150,myCallback, IntPtr.Zero); pb.Image=img;
    pb.Name=files[x].FullName;

    pb.Click+=new EventHandler(pb_Click);
    pb.Width=200;
    pb.Height=150;
    pb.BorderStyle=BorderStyle.FixedSingle;

                  
    arr.Add(pb);

    }
     files=di.GetFiles("*.jpg");
    for(int x=0;x<files.Length;x++)
    {
    PictureBox pb=new PictureBox();
    System.Drawing.Bitmap bm=new System.Drawing.Bitmap(@files[x].FullName);
    ///获取图片缩略图开始
    Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);

    Image img=bm.GetThumbnailImage(200,150,myCallback, IntPtr.Zero); pb.Image=img;
    pb.Name=files[x].FullName;
    pb.Click+=new EventHandler(pb_Click);
    pb.Width=200;
    pb.Height=150;
    pb.BorderStyle=BorderStyle.FixedSingle;

    arr.Add(pb);


    } files=di.GetFiles("*.jpeg");
    for(int x=0;x<files.Length;x++)
    {
    PictureBox pb=new PictureBox();
    System.Drawing.Bitmap bm=new System.Drawing.Bitmap(@files[x].FullName);
    ///获取图片缩略图开始
    Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);

    Image img=bm.GetThumbnailImage(200,150,myCallback, IntPtr.Zero);
    //获取图片缩略图开始结束 pb.Image=img;
    pb.Name=files[x].FullName;
    pb.Click+=new EventHandler(pb_Click);
    pb.Width=200;
    pb.Height=150;
    pb.BorderStyle=BorderStyle.FixedSingle;

                  
    arr.Add(pb);


    }

    foreach(object ob in arr)
    {PictureBox obx=(PictureBox)ob;
    if(this.plZP.Controls.Count>0)
    {
    if((this.plZP.Controls[this.plZP.Controls.Count-1].Right+200)>this.plZP.Width)
    {
    obx.Location=new System.Drawing.Point(0,this.plZP.Controls[this.plZP.Controls.Count-1].Bottom);

    }
    else
    {
    obx.Location=new System.Drawing.Point(this.plZP.Controls[this.plZP.Controls.Count-1].Right,this.plZP.Controls[this.plZP.Controls.Count-1].Location.Y);

    }
    }
    else
    {
    obx.Location=new System.Drawing.Point(0,0);

    }
    this.plZP.Controls.Add(obx);

    }
    arr.Clear();}
    public bool ThumbnailCallback()
    {
    return false;
    }
    看看对你有帮助吗,这是我写的一个浏览文件夹内3中图片格式的缩略图的代码,