/**
* 根据图片网络地址获取图片的byte[]类型数据
*
* @param urlPath
* 图片网络地址
* @return 图片数据
*/
public static byte[] getImageFromURL(String urlPath) {
byte[] data = null;
InputStream is = null;
HttpURLConnection conn = null;
try {
URL url = new URL(urlPath);
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
// conn.setDoOutput(true);
conn.setRequestMethod("GET");
conn.setConnectTimeout(6000);
is = conn.getInputStream();
if (conn.getResponseCode() == 200) {
data = readInputStream(is);
} else{
data=null;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if(is != null){
is.close();
}
} catch (IOException e) {
e.printStackTrace();
}
conn.disconnect();
}
return data;
}
/**
* 读取InputStream数据,转为byte[]数据类型
* @param is
* InputStream数据
* @return 返回byte[]数据
*/
public static byte[] readInputStream(InputStream is) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length = -1;
try {
while ((length = is.read(buffer)) != -1) {
baos.write(buffer, 0, length);
}
baos.flush();
} catch (IOException e) {
e.printStackTrace();
}
byte[] data = baos.toByteArray();
try {
is.close();
baos.close();
} catch (IOException e) {
e.printStackTrace();
}
return data;
}
分享到:
相关推荐
首先,你需要一个方法来发送HTTP请求获取图片数据。C#中的`HttpClient`类是处理网络请求的标准库。创建一个`HttpClient`实例,然后使用`GetAsync`方法来异步请求图片的URL。例如: ```csharp using System.Net.Http...
在计算机编程中,尤其是涉及到图形处理和数据存储时,经常需要在不同的数据类型之间进行转换。在VC(Visual C++)环境下,Bitmap对象是用于表示图像的一种常见数据结构,而`Byte[]`(字节数组)则常用于数据传输或...
在Java编程中,下载网络图片并将其保存到本地是一个常见的任务,特别是在开发涉及网页抓取、数据备份或者网络资源管理的项目中。这个过程通常包括以下几个步骤:建立网络连接、发送请求、接收响应数据以及将数据保存...
例如,当从网络下载图片数据时,我们可以将接收到的`NSData`转换为`UIImage`,然后显示在界面上;反之,如果要保存图片,我们可以将`UIImage`转换为`NSData`,再写入到文件系统。同时,`NSData`也常用于存储和恢复...
这些类型的转换在不同的场景下具有重要的作用,例如从网络加载图片、存储图片到本地或者显示在ImageView上。以下是对这些转换的详细解释。 首先,Drawable是Android中的一个接口,用于表示可绘制的对象,它可以是一...
// 根据图片类型设置 response.setContentLength(imageBytes.length); OutputStream os = response.getOutputStream(); os.write(imageBytes); os.flush(); os.close(); } ``` 在HTML页面中,我们可以使用`...
我们可以使用`WebClient.DownloadData`或`WebClient.DownloadFile`方法来获取网络资源的数据流或直接保存到本地。例如: ```csharp using System.Net; WebClient client = new WebClient(); byte[] imageData = ...
1. 字节(Byte)类型数据: - 无符号字节:可以表示的数据范围为0到255(0-FF)。 - 有符号字节:可以表示的数据范围为-128到+127(80-FF)。 2. 字(Word)类型数据: - 无符号字:可以表示的数据范围为0到65535...
在这个方法里,我们可以调用网络API获取图片的URL,使用HttpURLConnection或OkHttp等库下载图片数据,然后可能需要解码图片,转换成Bitmap对象。 3. `onPostExecute(Result)`:此方法也在主线程中运行,接收`...
5. **安全性**:当从不可信来源获取图片数据时,应采取安全措施防止恶意代码执行。 通过以上两个函数的实现,我们可以轻松地在图片和二进制流之间进行转换。这对于数据库存储、网络传输等应用场景非常有用。同时,...
在C#编程中,处理图像数据时经常需要将图片转换为byte数组,以便于存储到数据库或在网络上传输。反之,从数据库中读取到byte数组后,也需要将其转换回Image对象进行显示或进一步处理。这里我们将详细探讨如何实现C#...
接着,将获取到的图片转换为`byte[]`格式,以便于通过网络进行传输。 ```csharp MemoryStream ms = new MemoryStream(); img.Save(ms, ImageFormat.Jpeg); // 将图片写入内存流 byte[] b = ms.ToArray(); // 转换为...
总的来说,C#提供了一系列便捷的工具来处理不同类型数据间的转换。无论是从字节数组还原图像,还是将图像数据编码为字符串进行传输,都有相应的API可以方便地完成这些任务。理解并熟练运用这些方法,能帮助开发者更...
- 获取图像数据:然后,使用“获取图片数据”命令可以获取到图片的原始二进制数据,这些数据可以被存储到一个字节集中。 - 存储字节集:最后,使用“创建字节集”或“扩展字节集”命令创建一个新的字节集,并将...
// 获取图片的字节数据 using (MemoryStream stream = new MemoryStream(imageData)) { Image img = Image.FromStream(stream); } ``` 5. 扫描程序集(dll/exe)提取图片: 要从程序集(dll/exe)中提取嵌入...
3. **图片下载**:在`doInBackground()`方法内,我们可以构建HTTP请求,获取图片数据,然后将数据保存到本地。通常会先将图片数据转换成`byte[]`,再写入到文件系统中。 4. **图片缓存**:为了提高用户体验和减少...
假设我们有一个名为`images`的表,其中包含`image_data`字段存储图片的BLOB类型数据。我们可以使用PreparedStatement来执行查询: ```java String sql = "SELECT image_data FROM images WHERE id = ?"; ...
1. **确保完整的流数据**:确保流是从正确的源获取,并且包含了完整的图像数据。在从网络或其他来源读取时,确保数据传输无误。 2. **检查并转换格式**:如果图像格式不受支持,可以考虑使用第三方库(如ImageMagick...
根据图像的颜色模型,`BufferedImage`有几种子类型,如`TYPE_INT_ARGB`、`TYPE_BYTE_GRAY`等。 4. **获取像素值**: 一旦有了`BufferedImage`对象,可以通过`getRGB(x, y)`方法获取图像中指定位置(x, y)的像素值。...