用C#编写图片浏览器
想用C#做一个简单的图片浏览器,但是我目前只会往imagelist里添加图片,不知道能否设定一个目录,将一个目录里的所有图片显示出来?另外还想知道,如何通过滚轮实现图片的...
想用C#做一个简单的图片浏览器,但是我目前只会往imagelist里添加图片,不知道能否设定一个目录,将一个目录里的所有图片显示出来?
另外还想知道,如何通过滚轮实现图片的缩放?
求指导,有代码最好。谢谢! 展开
另外还想知道,如何通过滚轮实现图片的缩放?
求指导,有代码最好。谢谢! 展开
2个回答
展开全部
我跟你说一下图片浏览器流程。我感觉你的方案有严重问题,我们探讨一下。
imagelist虽然可以加载大图片,但很少通过它做浏览器的。imagelist主要用来存储一些诸如自定义图标等类的图形,用来设置按钮、树、listview等的图案。如果要浏览硬盘图片,那么你要把图片添加到imagelist中,然后在picturebox里显示,到下一张的时候,要清除imagelist里图片,这样造成很大的不必要的开销,我们应该直接从硬盘读图片文件,直接在picturebox里显示,抛弃imagelist。
你可以做一个目录浏览器,如果不会做或者嫌麻烦,那就用对话框打开一个路径,自动获取里面的图片文件,在窗口里显示。
首先你要获得图片文件的数量,用循环的方式,根据图片数量,设置横向预览数量,自动创建picturebox,然后为每个picturebox加载图片。这部分应该不难。
所有的picturebox可以放到一个容器里,如panel,设置panel自动出现滚动条,这样就可以显示所有图片了。
至于代码,做目录浏览器的麻烦一些,代码较多,生成图片较为简单。
你可以百度一下,网上有类似源码。我就不编写了,太多。
imagelist虽然可以加载大图片,但很少通过它做浏览器的。imagelist主要用来存储一些诸如自定义图标等类的图形,用来设置按钮、树、listview等的图案。如果要浏览硬盘图片,那么你要把图片添加到imagelist中,然后在picturebox里显示,到下一张的时候,要清除imagelist里图片,这样造成很大的不必要的开销,我们应该直接从硬盘读图片文件,直接在picturebox里显示,抛弃imagelist。
你可以做一个目录浏览器,如果不会做或者嫌麻烦,那就用对话框打开一个路径,自动获取里面的图片文件,在窗口里显示。
首先你要获得图片文件的数量,用循环的方式,根据图片数量,设置横向预览数量,自动创建picturebox,然后为每个picturebox加载图片。这部分应该不难。
所有的picturebox可以放到一个容器里,如panel,设置panel自动出现滚动条,这样就可以显示所有图片了。
至于代码,做目录浏览器的麻烦一些,代码较多,生成图片较为简单。
你可以百度一下,网上有类似源码。我就不编写了,太多。
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
可以根据目录将图片全部显示出来,方法是
foreach (String imageName in System.IO.Directory.GetFiles("E:\\"))
{
//string imageName=sss;
switch (System.IO.Path.GetExtension(imageName).ToLower())
{
case ".png":
case".jpg":
case".bmp":
this.pictureBox1.ImageLocation = imageName;
break;
}
}
这里的意思是在E盘找到一个图片并加载,其他的你可以在发挥,至于根据滚轮实现图片缩放,要设置 pictureBox1的属性
this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
添加滚轮事件看这个网页 http://blog.csdn.net/angxiao/article/details/7609856
最后 在滚动的时候,改变this.pictureBox1的高度和宽度就可以了
foreach (String imageName in System.IO.Directory.GetFiles("E:\\"))
{
//string imageName=sss;
switch (System.IO.Path.GetExtension(imageName).ToLower())
{
case ".png":
case".jpg":
case".bmp":
this.pictureBox1.ImageLocation = imageName;
break;
}
}
这里的意思是在E盘找到一个图片并加载,其他的你可以在发挥,至于根据滚轮实现图片缩放,要设置 pictureBox1的属性
this.pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
添加滚轮事件看这个网页 http://blog.csdn.net/angxiao/article/details/7609856
最后 在滚动的时候,改变this.pictureBox1的高度和宽度就可以了
追问
这里的E盘是预先设置好的吧?能不能做到自己指定路径然后搜索呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询