//==========================用了两种方法======================
1.------------用流方式
try {
//实例化url
URL url = new URL(imgurl);
//载入图片到输入流
java.io.BufferedInputStream bis = new BufferedInputStream(url.openStream());
//实例化存储字节数组
byte[] bytes = new byte[100];
//设置写入路径以及图片名称
OutputStream bos = new FileOutputStream(new File( "C:\\thetempimg.gif"));
int len;
while ((len = bis.read(bytes)) > 0) {
bos.write(bytes, 0, len);
}
bis.close();
bos.flush();
bos.close();
//关闭输出流
b=true;
} catch (Exception e) {
//如果图片未找到
b=false;
}
int[] a = new int[2];
if(b){ //图片存在
//得到文件
java.io.File file = new java.io.File("C:\\thetempimg.gif");
BufferedImage bi = null;
try {
//读取图片
bi = javax.imageio.ImageIO.read(file);
} catch (IOException ex) {
ex.printStackTrace();
}
a[0] = bi.getWidth(); //获得 宽度
a[1] = bi.getHeight(); //获得 高度
//删除文件
file.delete();
}else{ //图片不存在
a=null;
}
return a;
}
// 显示网络上的图片
public static Bitmap returnBitMap(String url) {
Log.i("returnBitMap","url="+url);
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
分享到:
相关推荐
本文主要介绍了C#实现把图片转换成二进制以及把二进制转换成图片的方法,并结合具体实例形式分析了基于C#的图片与二进制相互转换以及图片保存到数据库的相关操作技巧。 一、图片转换成二进制 在C#中,可以使用...
"Android 实现图片转二进制流及...Android 实现图片转二进制流及二进制转字符串是一个非常重要的知识点,我们可以使用 FileInputStream、ByteArrayOutputStream、Matrix 等对象来实现图片转换和压缩,并上传到服务器。
2. **Android上传图片**:在Android中,可以使用`Bitmap`类获取图片,然后通过`Bitmap.CompressFormat`将图片转换成JPEG或PNG格式的字节数组。使用`OkHttp`或`Volley`库创建网络请求,将字节数组作为请求体发送。 *...
二进制转换是图像二进制显示的关键步骤。这通常涉及到阈值处理,即将像素的色彩或亮度值与某个预设的阈值进行比较。如果值高于阈值,像素被设置为白色;反之,则为黑色。这种方法可以有效地减少图像的色彩信息,使其...
4. **转换为二进制流**:将Bitmap转换为字节数组,可以使用`Bitmap.compress()`方法,选择如JPEG或PNG的格式。 5. **构建HTTP请求**:创建一个POST请求,设置Content-Type为`multipart/form-data`,因为这是上传...
这是最基础的方式,通过发送HTTP请求获取图片的二进制数据,然后将其转换为`Bitmap`对象,最后在`ImageView`中显示。这种方式虽然简单,但不推荐在实际项目中使用,因为它没有考虑到内存管理和线程安全问题。 2. *...
- **Bitmap的加载与解码**:从资源文件、内存、磁盘或者网络URL加载Bitmap,并根据需求进行解码,以控制内存占用。 - **Bitmap的尺寸调整**:通过`Bitmap.createScaledBitmap()`方法,根据需要调整Bitmap的尺寸,...
在网络图片加载过程中,我们需要使用输入流(InputStream)从服务器获取图片数据,然后将其转换为Bitmap对象,以便在ImageView中展示。 以下是实现这一功能的基本步骤: 1. **获取网络图片的URL**:首先,你需要一...
Base64是一种用于将二进制数据转换为可打印字符的编码方式,常用于在网络上传输图片或者存储在文本格式的数据中。本文将深入探讨Android中图片与Base64之间的转换,并提供相关的实现方法。 一、Base64编码原理 Base...
它允许我们从指定的URL读取数据,如图片的二进制数据。 3. **InputStream**: 用于读取字节流的接口。在本例中,我们通过HttpURLConnection获取到一个InputStream,从中读取图片的二进制数据。 4. **Bitmap**: ...
4. **图片转换**:将二进制数据转换为Bitmap对象,这在Android中常用`BitmapFactory.decodeStream()`完成。确保正确设置解码参数,如缩放因子,以优化内存使用。 5. **保存图片**:将Bitmap对象保存到本地文件系统...
获取输入流后,可以读取图片的二进制数据。 2. 将图片保存到本地:读取到图片数据后,将其保存到手机的缓存目录或指定位置。可以使用FileOutputStream将二进制数据写入文件。 3. 显示图片:Android提供了多种方式...
对于从网络下载的图片,我们通常需要将其转换为Bitmap对象才能在ImageView中显示。 下面是一个简单的步骤,演示如何从网络获取图片并显示在ImageView中: 1. **添加网络权限**:在AndroidManifest.xml中添加...
在Android中,我们可以使用`HttpURLConnection`或第三方库如`Volley`、`OkHttp`来实现网络请求,获取到图片的二进制数据。 3. **处理数据流**:下载到的数据通常为字节流,需要转换为Bitmap对象,才能被`ImageView`...
4. 将二进制数据转换为图像:使用`Image.FromStream`方法将接收到的数据转换为`Bitmap`对象。 5. 使用GDI+显示图像:创建一个`Graphics`对象,然后调用其`DrawImage`方法在窗体或控件上绘制图像。 压缩包中的文件...
3. **数据处理**:将接收到的二进制数据转化为Bitmap对象,可能还会涉及到图片的压缩、裁剪等优化操作。 4. **缓存策略**:为了提高性能,AsyncImageLoader可能会实现内存缓存和磁盘缓存策略,例如使用LruCache或...
- 数据转换:首先,我们需要将图片转换为适合网络传输的格式,通常是JPEG或PNG,使用`Bitmap`对象的`compress()`方法。 - 文件编码:图片数据需要转换为字节数组,以便通过HTTP请求发送。可以使用`BitmapFactory`...
在这个方法里,我们可以调用网络API获取图片的URL,使用HttpURLConnection或OkHttp等库下载图片数据,然后可能需要解码图片,转换成Bitmap对象。 3. `onPostExecute(Result)`:此方法也在主线程中运行,接收`...
- **数据转换**:接收到服务器响应后,将二进制数据转换为Bitmap对象。 2. **内存缓存** - **BitmapMemoryCache**:创建一个内存缓存,使用哈希表存储Bitmap对象,根据图片的URL作为键,Bitmap作为值。当内存不足...
在简单的场景下,你可以直接发送一个GET请求到图片URL,然后将响应的二进制数据转换为Bitmap并显示在ImageView上。不过,这种方式并不高效,因为它没有考虑缓存机制,每次请求都会消耗网络资源。 2. **ImageLoader*...