获取http和ftp地址的图片
根据http和ftp图片地址获取对应图片的缩略图和原图
- public class GetBitmapImageClass
- {
- public BitmapSource GetImageHttp(string url,int width)
- {
- var image = new BitmapImage();
- int BytesToRead = ;
- if (!string.IsNullOrEmpty(url))
- {
- WebRequest request = WebRequest.Create(new Uri(url, UriKind.Absolute));
- request.Timeout = -;
- WebResponse response = request.GetResponse();
- Stream responseStream = response.GetResponseStream();
- BinaryReader reader = new BinaryReader(responseStream);
- MemoryStream memoryStream = new MemoryStream();
- byte[] bytebuffer = new byte[BytesToRead];
- int bytesRead = reader.Read(bytebuffer, , BytesToRead);
- while (bytesRead > )
- {
- memoryStream.Write(bytebuffer, , bytesRead);
- bytesRead = reader.Read(bytebuffer, , BytesToRead);
- }
- image.BeginInit();
- image.DecodePixelWidth = width;
- image.CacheOption = BitmapCacheOption.OnLoad;
- memoryStream.Seek(, SeekOrigin.Begin);
- image.StreamSource = memoryStream;
- image.EndInit();
- image.Freeze();
- memoryStream.Close();
- reader.Close();
- responseStream.Close();
- response.Close();
- }
- return image;
- }
- public BitmapSource GetImageFtp(string url, int width)
- {
- var image = new BitmapImage();
- if (!string.IsNullOrEmpty(url))
- {
- FtpWebRequest reqFtp;
- reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
- reqFtp.Method = WebRequestMethods.Ftp.DownloadFile;
- reqFtp.UseBinary = true;
- FtpWebResponse response = (FtpWebResponse)reqFtp.GetResponse();
- Stream ftpStream = response.GetResponseStream();
- MemoryStream mStream = new MemoryStream();
- ftpStream.CopyTo(mStream);
- mStream.Position = ;
- int length = (int)mStream.Length;
- byte[] returnbyte = new byte[length];
- mStream.Read(returnbyte, , length);
- mStream.Close();
- ftpStream.Close();
- response.Close();
- System.IO.MemoryStream stream = new System.IO.MemoryStream(returnbyte);
- image.BeginInit();
- image.DecodePixelWidth = width;
- image.CacheOption = BitmapCacheOption.OnLoad;
- stream.Seek(, SeekOrigin.Begin);
- image.StreamSource = stream;
- image.EndInit();
- image.Freeze();
- stream.Close();
- }
- return image;
- }
- [DllImport("gdi32.dll", SetLastError = true)]
- private static extern bool DeleteObject(IntPtr hObject);
- public BitmapSource ToBitmapSource(System.Drawing.Bitmap bmp)
- {
- try
- {
- var ptr = bmp.GetHbitmap();
- var source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
- ptr, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
- DeleteObject(ptr);
- return source;
- }
- catch
- {
- return null;
- }
- }
- //获取缩略图
- public BitmapSource GetBitImage(string imageLink)
- {
- //"http://172.17.1.231:8083/3050273262379466760/2017/05/28/09/340800100999/09163448402.jpg?fid=1267520"
- if (imageLink.StartsWith("http://"))
- {
- return GetImageHttp(imageLink,);
- }
- //ftp格式的
- else if (imageLink.StartsWith("ftp://"))
- {
- return GetImageFtp(imageLink, );
- }
- }
- //获取原图
- public BitmapSource GetHightBitImage(string imageLink)
- {
- //"http://172.17.1.231:8083/3050273262379466760/2017/05/28/09/340800100999/09163448402.jpg?fid=1267520"
- if (imageLink.StartsWith("http://"))
- {
- return GetImageHttp(imageLink, );
- }
- //ftp格式的
- else if (imageLink.StartsWith("ftp://"))
- {
- return GetImageFtp(imageLink, );
- }
- }
- }
获取http和ftp地址的图片的更多相关文章
- 页面中直接显示FTP中的图片
页面中直接显示FTP中的图片 FTP根目录下有一张图片,如下 第一步: 通过如下格式,在浏览器上输入路径,确定可看到图片 ftp://root:root@127.0.0.1/111.png ftp:/ ...
- Java学习笔记——IO操作之以图片地址下载图片
以图片地址下载图片 读取给定图片文件的内容,用FileInputStream public static byte[] mReaderPicture(String filePath) { byte[] ...
- [Swift通天遁地]五、高级扩展-(5)获取互补色、渐变色、以及图片主题颜色
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 获取本地的IP地址(内网)
方法一 public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = N ...
- url地址的图片路径
url地址的图片路径: (./images/1.jpg) 中的./指根路径,有或没有都可以: (../images/1.jpg) 中的../指相对路径: (../../images/1.jpg) 中的 ...
- 获取本机IP地址
这里有两种方法: //获取本机IP - (NSString *)localIPAddress { NSString *localIP = nil; struct ifaddrs *addrs; ) { ...
- 关于是用dotnet获取本机IP地址+计算机名的方法
印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...
- 【知识积累】服务器端获取客户端的IP地址(当客户端调用由Axis开发的WebService)
一.前言 由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户端采用Axis开发的WebServic ...
- 获取设备的mac地址可靠的方法
参考自:http://www.open-open.com/lib/view/open1433406847322.html /** * 获取设备的mac地址 * * @param ac * @param ...
随机推荐
- 【转载】C/C++杂记:虚函数的实现的基本原理
原文:C/C++杂记:虚函数的实现的基本原理 1. 概述 简单地说,每一个含有虚函数(无论是其本身的,还是继承而来的)的类都至少有一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的函数指针.例: ...
- rem布局注意问题和meta标签
使用rem前的准备: 如果是移动端,添加name="viewport"的meta标签,其中的属性数值根据实际需求而定: <meta name="viewport&q ...
- zedboard学习(1)OLED驱动显示图像
1. 干点啥?驱动一下上面的屏吧 2. 找个代码研究一下,cat命令用于读取文件(普通文件或设备文件)的内容并进行输出.据说板子已经做好OLED的驱动了,驱动映射为/dev/zed_oled,所以直接 ...
- Struts 2(八):文件上传
第一节 基于Struts 2完成文件上传 Struts 2框架中没有提供文件上传,而是通过Common-FileUpload框架或COS框架来实现的,Struts 2在原有上传框架的基础上进行了进一步 ...
- Visual Studio设置字体及护眼背景色
打开vs 菜单栏选择: 工具 -> 选择 -> 环境 -> 字体和颜色,如图所示 字体可以如上选择,背景色选择项背景,点击自定义,如下设置即可.
- python-map, reduce, filter, lambda
目录 lambda表达式 reduce()函数 map()函数 filter()函数 tips:以下使用到的迭代器,可迭代对象,生成器等概念可以参见我的另一篇博客 lambda表达式 主要用于一行写完 ...
- SPP-net论文总结
SPPNet方法来自<Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition> ,是大神 ...
- 第1章 Python基础
一.安装Python windows: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境 ...
- 如何让QT程序以管理员权限运行(UAC)
方案一:(仅适用于使用msvc编译器) 在PRO文件中添加一行指令即可, QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator' ...
- iPhone上的CPU架构,核数以及运行内存
机型 CPU架构 CPU名 CPU位数 CPU核数 运行内存 iPhone 5 ARMv7s A6 32bit 双核 1G iPhone 5c ARMV7s A6 32bit 双核 1G iPhone ...