.net 根据图片网络地址获取图片二进制字节数据流
根据html路径获取图片的字节
/// <summary>
///根据html路径获取图片的字节
/// </summary>
/// <param name="picSize">图片尺寸,原图:1,大图:2,中图:3,小图:4</param>
/// <param name="serverPath">图片服务器地址</param>
/// <returns></returns>
public static byte[] GetImageByteByHtmlImgUrl(string imgSize, string serverPath)
{
byte[] bt = new byte[]; try
{
serverPath = serverPath.Replace("_1.", string.Format("_{0}.", imgSize));
Image obj = Image.FromStream(System.Net.WebRequest.Create(serverPath).GetResponse().GetResponseStream());
bt = ImageToByteArray(obj); //使用ImageToByteArray()函数 将Image类型转成Byte[]类型
obj.Dispose();
return bt;
}
catch //如果获取异常 则使用资源中的图片显示
{
//Image obj = Image.FromStream("");
//byte[] bt = ImageToByteArray(obj);
//obj.Dispose();
//return bt;
} return bt;
}
关键代码:
Image obj = Image.FromStream(System.Net.WebRequest.Create(serverPath).GetResponse().GetResponseStream());
从网络上先存储成本地图片,再从本地图片中转成二进制数据流
/// <summary>
/// 获取商品图片的二进制数据流
/// </summary>
/// <param name="picSize">图片尺寸,原图:1,大图:2,中图:3,小图:4</param>
/// <param name="filePath">本地路径</param>
/// <param name="serverPath">图片服务器地址</param>
public static byte[] GetServerFile(string picSize, string filePath, string serverPath)
{
byte[] buffer = new byte[]; System.Net.HttpWebRequest hr;
FileStream fs = null;
Stream s = null; try
{
filePath = System.IO.Directory.GetCurrentDirectory() + "\\" + "byteimg" + "\\" + filePath; filePath = filePath.Replace("_1.", string.Format("_{0}.", picSize)); hr = (HttpWebRequest)HttpWebRequest.Create(serverPath); if (!File.Exists(filePath))
{
string path = System.IO.Path.GetDirectoryName(filePath);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
// _FileDir = str; // Flag = G_Method.GetServerFile(LoadFileName, _ImageAddress + NVRGoodsImageFile.Replace("\\", "//"));
} //if (File.Exists(filePath))
//{
// return true;
//} fs = new FileStream(filePath, FileMode.Create);
s = hr.GetResponse().GetResponseStream(); int bytesRead = s.Read(buffer, , buffer.Length);
while (bytesRead > )
{
fs.Write(buffer, , bytesRead);
bytesRead = s.Read(buffer, , buffer.Length);
}
// return true;
}
catch (Exception e)
{
//throw new ApplicationException("Could not download file " + serverPath, e);
// return false;
}
finally
{
if (s != null)
s.Close();
if (fs != null)
fs.Close();
} return buffer;
}
Code By 博客园-曹永思
根据image获取图片的字节
/// <summary>
/// 根据image获取图片的字节
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
private static byte[] ImageToByteArray(Image image)
{
System.IO.MemoryStream mStream = new System.IO.MemoryStream();
image.Save(mStream, System.Drawing.Imaging.ImageFormat.Png);
byte[] ret = mStream.ToArray();
mStream.Close();
return ret;
}
根据图片字节流获取Image实例
/// <summary>
/// 根据图片字节流获取Image实例
/// </summary>
/// <param name="imagebyte"></param>
/// <returns></returns>
public static Image SetByteToImage(byte[] imagebyte)
{
Image image;
MemoryStream imagememorystream = new MemoryStream(imagebyte, , imagebyte.Length);
image = Image.FromStream(imagememorystream);
return image;
}
.net 根据图片网络地址获取图片二进制字节数据流的更多相关文章
- Qt 打开安卓相冊选择图片并获取图片的本地路径
Qt 打开安卓相冊选择图片并获取图片的本地路径 过程例如以下: 通过 Intent 打开安卓的系统相冊. 推荐使用 QAndroidJniObject::getStaticObjectField 获取 ...
- Android根据图片Uri获取图片path绝对路径的几种方法【转】
在Android 编程中经常会用到Uri转化为文件路径,如我们从相册选择图片上传至服务器,一般上传前需要对图片进行压缩,这时候就要用到图片的绝对路径. 下面对我开发中uri转path路径遇到的问题进行 ...
- Android -- 加载大图片到内存,从gallery获取图片,获取图片exif信息
1. 加载大图片到内存,从gallery获取图片 android默认的最大堆栈只有16M, 图片像素太高会导致内存不足的异常, 需要将图片等比例缩小到适合手机屏幕分辨率, 再加载. 从gallery ...
- Android 打开照相机、获取相册图片、获取图片并裁减
一.调用照相机 注:surfaceView在当Activity不在前台的时候,会被销毁(onPause方法之后,执行销毁方法)当Activity回到前台时,在Activity执行onResume方法之 ...
- android 根据图片名字获取图片id
public int getResource(String imageName){ Context ctx=getBaseContext(); int resId = getResources().g ...
- iOS获取相册/相机图片-------自定义获取图片小控件
一.功能简介 1.封装了一个按钮,点击按钮,会提示从何处获取图片:如果设备支持相机,可以从相机获取,同时还可以从手机相册获取图片. 2.选择图片后,有一个block回调,根据需求,将获得的图片拿来使用 ...
- 根据图片URL获取图片的尺寸【Swift语言实现】
import UIKit extension UIImage { /// 获取网络图片尺寸 /// /// - Parameter url: 网络图片链接 /// - Returns: 图片尺寸siz ...
- html5plus 从相册选择图片后获取图片的大小
plus.gallery.pick(function (filePath) { plus.io.resolveLocalFileSystemURL(filePath, function (entry) ...
- iOS根据Url 获取图片尺寸
iOS根据Url 获取图片尺寸 // 根据图片url获取图片尺寸 +(CGSize)getImageSizeWithURL:(id)imageURL { NSURL* URL = nil; if([i ...
随机推荐
- ubuntu系统ssh遇到port 22:No route to host问题
ssh遇到这个port 22:No route to host这个问题 检查防火墙状态 (iptables -L) 检查ssh状态 (ps -elf |grep ssh) 检查网络状态(换根网线)
- 39-java中Arrays.sort 和 collections.sort()总结
总结一下java 中的两种排序工具: Arrays.sort() : 主要针对 数组类型排序,如果数组里面的元素是对象,要按对象属性排序的话,需要重写 Comparator() 函数,重写里面的 i ...
- 46-wxpython 4 使用 grid 展示表格
转载:https://blog.csdn.net/soslinken/article/details/79024938#%E4%BD%BF%E7%94%A8%E6%A0%B7%E4%BE%8B wxp ...
- node.js中对Event Loop事件循环的理解
javascript是单线程的,所以任务的执行都需要排队,任务分为两种,一种是同步任务,一种是异步任务. 同步任务是进入主线程上排队执行的任务,上一个任务执行完了,下一个任务才会执行. 异步任务是不进 ...
- 模块二 hashlib模块、configparser模块、logging模块
算法介绍 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常 ...
- 9.26 H5日记
9.26 1.新的背景属性,background-position background-position有两个值,水平和垂直,单位px ❤在html和CSS当中,有三个属性可以向服务器发送请求,分别 ...
- Raw Socket(原始套接字)实现Sniffer(嗅探)
参考资料: https://www.xuebuyuan.com/3190946.html https://blog.csdn.net/zxygww/article/details/52093308 i ...
- Python 常用模块之re 正则表达式的使用
re模块用来使用正则表达式.正则表达式用来对字符串进行搜索的工作.我们最应该掌握正则表达式的查询,更改,删除的功能.特别是做爬虫的时候,re模块就显得格外重要. 1.查询 import re a = ...
- Longest Turbulent Subarray LT978
A subarray A[i], A[i+1], ..., A[j] of A is said to be turbulent if and only if: For i <= k < j ...
- java进行3DES加解密
import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.Secre ...