从网络中获取图片显示到Image控件并保存到磁盘
一、从网络中获取图片信息:
/// <summary>
/// 获取图片
/// </summary>
/// <param name="url">Url</param>
/// <returns>BitmapImage</returns>
public BitmapImage GetImage(string url)
{
BitmapImage image=null;
try
{
image = new BitmapImage();
long fileLength = ;
//从url指定的网络地址获取图片信息
WebRequest webReq = WebRequest.Create(url);
WebResponse webRes = webReq.GetResponse();
fileLength = webRes.ContentLength;
Stream srm = webRes.GetResponseStream();
byte[] bufferbyte = new byte[fileLength];
int allByte = (int) bufferbyte.Length;
int startByte = ;
while (fileLength > )
{
int downByte = srm.Read(bufferbyte, startByte, allByte);
if (downByte == )
{
break;
}
startByte += downByte;
allByte -= downByte;
}
//以流的形式初始化图片
image.BeginInit();
image.StreamSource = new MemoryStream(bufferbyte);
image.EndInit();
srm.Close();
webRes.Close();
}
catch (Exception)
{
Console.WriteLine("获取图片信息失败");
}
return image;
}
二、在Image控件中显示获取到的图片
public void ShowImage(BitmapImage img)
{
image.Source = img;
image.Width = img.PixelWidth;
image.Height = img.PixelHeight;
}
image是Image控件
三、保存Image到磁盘
/// <summary>
/// 保存图片到磁盘
/// </summary>
/// <param name="img"></param>
public void SaveImage(Image img)
{
//img为Image控件
BitmapSource bsrc = (BitmapSource)img.Source;
//保存文件对话框
SaveFileDialog sf = new SaveFileDialog();
//设定默认保存类型为Png
sf.DefaultExt = ".png";
//指定用户只能下载jpg和png格式的图片
sf.Filter = "JPG 图片 (*.jpg)|*.jpg|PNG 图片 (*.png)|*.png";
if (sf.ShowDialog() == true)
{
PngBitmapEncoder pngE = new PngBitmapEncoder();
pngE.Frames.Add(BitmapFrame.Create(bsrc));
using (Stream stream = File.Create(sf.FileName))
{
pngE.Save(stream);
}
}
}
从网络中获取图片显示到Image控件并保存到磁盘的更多相关文章
- VS编程,编辑WPF过程中,点击设计器中界面某一控件,在XAML中高亮突出显示相应的控件代码的设置方法。
原文:VS编程,编辑WPF过程中,点击设计器中界面某一控件,在XAML中高亮突出显示相应的控件代码的设置方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net ...
- Cocos2d-x3.0 从代码中获取cocostudio编辑的UI控件
依据名字查找控件 须要包括的头文件及名字空间: #include "cocostudio/CocoStudio.h" #include "ui/CocosGUI.h&qu ...
- WinForm中获取Listbox、DataGridView等控件某行对应的数据
Listbox:listbox.SelectedItem as XXX DataGridView:dataGridView1.Rows[i].Cells[1].Value.ToString()
- WPF如何将数据库中的二进制图片数据显示在Image控件上
首先在xaml文件里定义一个Image控件,取名为img MemoryStream stream = new MemoryStream(获得的数据库对象): BitMapImage bmp = new ...
- ios 从网络上获取图片并在UIImageView中显示
ios 从网络上获取图片 -(UIImage *) getImageFromURL:(NSString *)fileURL { NSLog(@"执行图片下载函数"); UIIm ...
- Android 多线程:使用Thread和Handler (从网络上获取图片)
当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕绘图事件,并把相关的事件分 ...
- Android相机、相册获取图片显示并保存到SD卡
Android相机.相册获取图片显示并保存到SD卡 [复制链接] 电梯直达 楼主 发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图 本帖最后由 happy小妖同学 ...
- 【iOS开发-从网络上获取图片尺寸】
实际开发过程中,容易碰到从网络上获取图片尺寸的场景,比如一个UIImageView要装载从网络上获取的图片,但要先设置其frame,此时又不知道图片尺寸,就要从网络上获取尺寸了.为了最好的用户体验,一 ...
- 从网络上获取图片并保存在sdCard上
package com.aib.soft; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileO ...
随机推荐
- LeetCode: 221_Maximal Square | 二维0-1矩阵中计算包含1的最大正方形的面积 | Medium
题目: Given a 2D binary matrix filled with 's and return its area. For example, given the following ma ...
- SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7(问题补充)
SQL1159 Initialization error with DB2 .NET Data Provider, reason code 7 需要注册GAC,修改注册表 IBM官方方案: http: ...
- 使用windbg分析iis崩溃的一个实例
问题背景说明:客户的生产环境不定时发生崩溃,需要定位崩溃的原因.在开发环境不能重现该问题,准备抓取IIS的dump文件分析 第一步:在客户的生产环境抓取dump文件 参考:IIS崩溃时自动抓取Dump ...
- SQL Server 中关于 @@error 的一个小误区
在SQL Server中,我常常会看到有些前辈这样写: ) ROLLBACK TRANSACTION T else COMMIT TRANSACTION T 一开始,我看见别人这么写,我就想当然的以为 ...
- Mesh Wifi
best idea ever Submitted by ozzy (not verified) on Mon, 2009-09-21 09:39. I thought of doing this on ...
- java攻城师之路(Android篇)--搭建开发环境、拨打电话、发送短信、布局例子
一.搭建开发环境 1.所需资源 JDK6以上 Eclipse3.6以上 SDK17, 2.3.3 ADT17 2.安装注意事项 不要使用中文路径 如果模拟器默认路径包含中文, 可以设置android_ ...
- jQuery相册预览简单实现(附源码)
1.CSS样式 <style type="text/css"> html,body,.viewer,.viewer .pic-list,.viewer .pic-lis ...
- Robot Framework自动化测试(四)--- 分层思想
谈到Robot Framework 分层的思想,就不得不提“关键字驱动”. 关键字驱动: 通过调用的关键字不同,从而引起测试结果的不同. 在上一节的selenium API 中所介绍的方法其实就是关 ...
- Direct3D11学习:(八)Effects介绍
转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Effects框架是一组用于管理着色器程序和渲染状态的工具代码.例如,你可能会使用不同的effect绘制水.云. ...
- WebApi 集成 Swagger
1. Swagger(俗称:丝袜哥)是什么东西? Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同 ...