获取图片:
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
string fullpath = openFileDialog1.FileName;//文件路径
pictureBox2.Image = GetFile(fullpath);
}
// 将内存流转为图片
private Image GetFile(string path)
{
MemoryStream stream = ReadFile(path);
return stream == null ? null : Image.FromStream(stream);
}
// 将文件转为内存流
private MemoryStream ReadFile(string path)
{
if (!File.Exists(path))
return null;
<span class="token keyword">using</span> <span class="token punctuation">(</span><span class="token class-name">FileStream</span> file <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">FileStream</span><span class="token punctuation">(</span>path<span class="token punctuation">,</span> FileMode<span class="token punctuation">.</span>Open<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token punctuation">{<!-- --></span>
<span class="token class-name"><span class="token keyword">byte</span><span class="token punctuation">[</span><span class="token punctuation">]</span></span> b <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name"><span class="token keyword">byte</span></span><span class="token punctuation">[</span>file<span class="token punctuation">.</span>Length<span class="token punctuation">]</span><span class="token punctuation">;</span>
file<span class="token punctuation">.</span><span class="token function">Read</span><span class="token punctuation">(</span>b<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> b<span class="token punctuation">.</span>Length<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token class-name">MemoryStream</span> stream <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token constructor-invocation class-name">MemoryStream</span><span class="token punctuation">(</span>b<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> stream<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
}
不显示并释放资源
if (result == DialogResult.OK)
{
Image image = pictureBox2.Image;
pictureBox2.Image = null;
image.Dispose();
}