在服务端有个文件夹下有很多图片,我在客户端winform形式,需要获取这些图片的信息.出来一个列表.列表如下:预览 文件名称 大小 创建时间 .....关键是预览的那个图片信息怎么弄上去.我采用过ImageList,可是那个要预先把图片弄进去,在服务端的图片信息是动态的.
后来想用二进制直接存储到数据库,读出数据库的数据,感觉这样子很麻烦,而且数据量很大.
最好是有类似BS结构的方法,给个地址,直接就能显示出图片来.我知道这个在Webform中很容易实现.请求各位大侠帮帮忙.分数不够可以再送,只求能解决问题.
后来想用二进制直接存储到数据库,读出数据库的数据,感觉这样子很麻烦,而且数据量很大.
最好是有类似BS结构的方法,给个地址,直接就能显示出图片来.我知道这个在Webform中很容易实现.请求各位大侠帮帮忙.分数不够可以再送,只求能解决问题.
解决方案 »
- ezVidC60控件来捕获多摄像头问题
- 请教如何释放存储过程的内存
- C#调用dll函数时发现只能传递2个参数后面参数都为空
- 如何把dataGridView中的某一行指定為當前行。
- 现在在为我们小组开发的系统写一个软件版本升级程序!大家会的进来帮忙一下啊!谢谢
- 谁有socket通信的c#示例?
- 如何将第二个窗体依靠在第一个窗体的panel控件上.即在第一个窗体的panel控件上显示.
- 怎样在Windows启动时自动启动程序?
- 怎么样可提高局域网Access数据库连接查找速度
- 如果图像比 PictureBox 大时怎样才能使pictureBox显示滚动条?
- sql 问题不大 但很棘手!
- 用c#.net开发的控制台程序,需要输入一个密码,如何在界面上显示******呀?急!!
可以在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框
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("")输出客户端代码
建议楼主看看一些开源的图象软件,如ACDSEE等
{
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中图片格式的缩略图的代码,