PictureBox是C#常用图片空间,本文是学习中搜集网络资料的一些整理和记录

1,PictureBox加载图片

using System.Drawing;

//方式1,从图片文件载入
//下面的路径是写死的,可以获取程序运行路径,这样更灵活
Image AA = new Bitmap(@"/Program Files/PictureBoxControlTest/tinyemulator_content.jpg");
     pictureBox1.Image =AA;
//方式2,通过imageList控件载入,这种方法的好处是可以设置图片的大小 imageList1.ImageSize = new Size(92,156); pictureBox1.Image = imageList1.Images[0]; 方式3 从程序的资源文件载入.这样做的好处是无需发布图片,已经被整合到程序集中去了. Bitmap bmp=new Bitmap (System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream ("PictureBoxControlTest.tinyemulator_res.jpg")); pictureBox1.Image =bmp;

  2 加载图片后本地图片无法删除问题(加载方式1)

在使用方式1加载后,本地图片仍然无法删除

解决方案1.0,将Image设置为空(pictureBox1.Image=NULL)仍然不行,原因是资源没有释放(等待垃圾回收器自动释放);

解决方案2.0,在1.0的基础上进行手动释放资源(AA.Dispose();),如果picturebox仍然在使用,可能会报错;

解决方案3.0,将使用 流将image读入内存,然后使用副本操作

        private MemoryStream MyReadFile(string picPath)
{
if (!File.Exists(picPath))
return null;
using (FileStream file = new FileStream(picPath, FileMode.Open))
{
byte[] b = new byte[file.Length];
file.Read(b,0,b.Length);
MemoryStream stream = new MemoryStream(b);
return stream;
}
}
private Image MyGetFile(string picPath)
{
MemoryStream stream = MyReadFile(picPath);
return stream == null ? null : Image.FromStream(stream);
}

3  PictureBox属性 SizeMode

SizeMode = Normal ,Image 置于 PictureBox 的左上角,凡是因过大而不适合 PictureBox 的任何图像部分都将被剪裁掉;

SizeMode=StretchImage ,会使Image图像拉伸或收缩,以便适合 PictureBox控件大小;

SizeMode=AutoSize ,会使PictureBox控件调整大小,以便总是适合Image图像的大小;

SizeMode=CenterImage,会使图像居于PictureBox工作区的中心,其它被剪掉;

SizeMode=Zoom ,  会使图像被拉伸或收缩以适应 PictureBox控件,但是仍然保持原始纵横比(图像大小按其原有的大小比例被增加或减小)

原文链接:

http://blog.csdn.net/patriot074/article/details/4295847

http://blog.csdn.net/jinhongdu/article/details/7703251

http://msdn.microsoft.com/zh-cn/library/system.windows.forms.pictureboxsizemode%28v=vs.110%29.aspx

(转)C#picturebox控件使用的更多相关文章

  1. C# Winform学习---MDI窗体的设计,PictureBox控件(图片上一页下一页),Timer控件,MenuStrip控件

    一.MDI窗体的设计 1.MDI简介 MDI(Multiple Document Interface)就是所谓的多文档界面,与此对应就有单文档界面 (SDI), 它是微软公司从Windows 2.0下 ...

  2. PictureBox控件鼠标进入的手形改变和提示

    PictureBox控件载入了图片后,如果要设置其为链接作用的功能,一般需要当鼠标移动到其上时鼠标自动变为手形以提示用户此时可以点击,如果图形无法方便辨识链接的具体功能,最好此时给与一定提示. 1.鼠 ...

  3. winfrom中pictureBox控件的部分使用方法

    一.后台属性 1.pictureBox1.Image显示图片 2.pictureBox1.ImageLocation存储和提取图片路径 二.面板属性 1.Picturebox控件SizeMode属性 ...

  4. 动态生成PictureBox控件,涉及:PictureBox控件和flowLayoutPanel面板

    一.概述 flowLayoutPanel面板是一系列控件的容器,有关详细的使用方法留待以后总结. 二.问题提出 问题提出:点击按钮,扫描指定文件夹并将其中的所有图片放在flowLayoutPanel面 ...

  5. PictureBox控件

    PictureBox控件可以显示来自位图.图标或者元文件,以及来自增强的元文件.JPEG.GIF文件的图形,如果控件不足以显示整幅图像,则裁剪图像以适应控件的大小. Sizemode 图片的大小方式 ...

  6. C# winform中PictureBox控件的SizeMode模式

    SizeMode属性有五种模式, Normal →标准模式, 在此模式下, 图片位于PictureBox的左上角, 图片的大小由PictureBox控件的大小决定, 当图片的大小大于PictureBo ...

  7. C#picturebox控件图片以json格式上传java后台保存

    关于winform上传图片到Java后端,保存到数据库,有多种方法,本文主要介绍利用picturebox控件,点击按钮上传图片,将图片转化为base64格式,以json格式上传到Java后台,再从ja ...

  8. C#与Halcon联合编程之用PictureBox控件替代HWindowControl控件

    在使用HALCON和C#联合编程,有时候要使用halcon的HWindowControl控件,但是我发现,HWindowControl的图片显示控件,不能使用GDI+绘制ROI,不知道为什么,反正我测 ...

  9. VB中PictureBox控件使用教程

    PictureBox对象可以说是任何对象的原始型态,它可以加载图片.显示文字.画图外,它还能与Frame对象一样,在自己本身里头加载其它的对象而自成一个小群组,用PictureBox可以仿真出任何对象 ...

随机推荐

  1. mysqldump: Got error: 1556: You can't use locks with log tables. when using LOCK TABLES

    mysqldump: Got error: 1556: You can't use locks with log tables. when using LOCK TABLES 我是把一些mysqldu ...

  2. openstack(liberty): 简单网络连接图

    openstack起初的网络部分是和计算核心nova合在一起的,后来被拆分出来,独立成为一个模块, 现在名为Neutron. 本博文是学习记录,记录的是基于GRE tunnel技术的neutron和计 ...

  3. 并行计算之Memory barrier(内存

    本文转载自:http://name5566.com/4535.html 参考文献列表:http://en.wikipedia.org/wiki/Memory_barrierhttp://en.wiki ...

  4. Excel定位对象(按钮等)

    手头只有2003,2007应该类似首先显示控件工具箱,进入设计模式.然后按Ctrl+G,在定位条件里选对象,确定.此时所有空间即被选中,按del可删除之.

  5. framework 安装出错 1603

    安装frame work 3.5的时候老是出现 1603错误. 百度了一圈,各种方法都试了,仍不行. 像: 1.打开临时目录看安装日志,然后修改注册表Main的权限. 2.停止服务Cryptograp ...

  6. C# is和as操作符

    is和as操作符 is操作符:检查对象是否与给定类型兼容. 说明: 1.如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true, ...

  7. Report_客制化报表输出Excel后去0问题(案例)

    2014-02-01 Created By BaoXinjian

  8. 冲突--ListView与ScrollView冲突的4种解决方案

    众所周知ListView与ScrollView都具有滚动能力,对于这样的View控件,当ScrollView与ListView相互嵌套会成为一种问题: 问题一:ScrollView与ListView嵌 ...

  9. 点击Listview弹出PopWindow的用法

    先来张截图: 如图点击listview中的Item在item的下方弹出一个框框,这个框框就是用的Popwindow.    用法很简单:首先写一个PopupWindow并自定义它的布局:       ...

  10. M2M

    1, M2M (数据算法模型) M2M是将数据从一台终端传送到另一台终端,也就是机器与机器(Machine to Machine)的对话.   M2M简介 但从广义上M2M可代表机器对机器(Machi ...