精华内容
下载资源
问答
  • 根据图片网络URL获取Bitmap

    千次阅读 2015-10-06 14:12:40
    /** * 根据一个网络连接(String)获取bitmap图像 * * @param imageUri * @return * @throws MalformedURLException */ public static Bitmap getbitmap(String imageUri) { Log.v(TAG,
    /**
         * 根据一个网络连接(String)获取bitmap图像
         * 
         * @param imageUri
         * @return
         * @throws MalformedURLException
         */
        public static Bitmap getbitmap(String imageUri) {
            Log.v(TAG, "getbitmap:" + imageUri);
            // 显示网络上的图片
            Bitmap bitmap = null;
            try {
                URL myFileUrl = new URL(imageUri);
                HttpURLConnection conn = (HttpURLConnection) myFileUrl
                        .openConnection();
                conn.setDoInput(true);
                conn.connect();
                InputStream is = conn.getInputStream();
                bitmap = BitmapFactory.decodeStream(is);
                is.close();
    
                Log.v(TAG, "image download finished." + imageUri);
            } catch (OutOfMemoryError e) {
                e.printStackTrace();
                bitmap = null;
            } catch (IOException e) {
                e.printStackTrace();
                Log.v(TAG, "getbitmap bmp fail---");
                bitmap = null;
            }
            return bitmap;
        }
    展开全文
  • Android获取Bitmap网络图片类型

    千次阅读 2020-06-05 18:53:43
    常见的获取图片格式的方式 Android中常见的图片格式有png、jpeg(jpg)、gif、...因为我们这里针对的是网络图片,所以第一步是将图片下载到本地。 通过[BitmapFactory.Options#outMimeType]获取图片格式 接着我们可以通

    常见的获取图片格式的方式

    Android中常见的图片格式有png、jpeg(jpg)、gif、webp,不同格式的图片,那么如何获取图片类型呢?

    常见的有两种方式,一种是在Bitmap加载过程中,通过BitmapFactory.Options#outMimeType来获取图片对应的格式,另一种是通过文件头信息来判断。

    效果图:

    jpeg

    png

    gif

    webp

    具体实现

    因为我们这里针对的是网络图片,所以第一步是将图片下载到本地。

    通过[BitmapFactory.Options#outMimeType]获取图片格式

    接着我们可以通过BitmapFactory.decodeFile(String pathName, Options opts)方法,从opts中获取对应的outMimeType,然后根据outMimeType即可判断对应的类型了。

    具体代码如下:

    Observable.create<File> {
        val fileTask = Glide.with(this)
            .asFile()
            .load(jpgUrl)
            .submit()
        val file = fileTask.get()
        it.onNext(file)
        it.onComplete()
    }
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .map {
            ivJpeg.setImageBitmap(BitmapFactory.decodeFile(it.absolutePath))
            it
        }
        .observeOn(Schedulers.io())
        .map({
            getBmpTypeByOptions(it.absolutePath)
        })
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(object : Observer<String> {
            override fun onComplete() {
                LogUtils.e(TAG, "onComplete")
            }
    
            override fun onSubscribe(d: Disposable?) {
                LogUtils.e(TAG, "onSubscribe")
            }
    
            override fun onNext(t: String?) {
                LogUtils.e(TAG, "onNext")
                LogUtils.e(TAG, "onNext mimeType:" + t)
                tvJpegInfoByBmpOptions.text = tvJpegInfoByBmpOptions.text.toString() + t
            }
    
            override fun onError(e: Throwable?) {
                LogUtils.e(TAG, "onError")
            }
    
        })
    

    核心代码:

    fun getBmpTypeByOptions(filePath: String): String {
        val options = BitmapFactory.Options()
        options.inJustDecodeBounds = true
        BitmapFactory.decodeFile(filePath, options)
        return options.outMimeType
    }
    
    通过文件头信息来判断图片格式
    Observable.create<File> {
        var fileTask = Glide.with(this)
            .asFile()
            .load(gifUrl)
            .submit()
        val file = fileTask.get()
        it.onNext(file)
        it.onComplete()
    }
        .subscribeOn(Schedulers.io())
        .observeOn(Schedulers.io())
        .map({
            FileTypeUtil.getMimeType(it.absolutePath)
        })
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(object : Observer<String> {
            override fun onComplete() {
                LogUtils.e(TAG, "onComplete")
            }
    
            override fun onSubscribe(d: Disposable?) {
                LogUtils.e(TAG, "onSubscribe")
            }
    
            override fun onNext(t: String?) {
                LogUtils.e(TAG, "onNext")
                LogUtils.e(TAG, "onNext mimeType:" + t)
                tvGifInfoByHead.text = tvGifInfoByHead.text.toString() + t
            }
    
            override fun onError(e: Throwable?) {
                LogUtils.e(TAG, "onError")
            }
    
        })
    

    核心代码在FileTypeUtil中,具体请看FileTypeUtil.java

    项目地址

    tinyvampirepudge/AndroidStudy

    具体页面地址: BitmapTypeActivity.kt

    参考

    https://my.oschina.net/ososchina/blog/1610685?nocache=1591319567444

    展开全文
  • Bitmap bitmap; //获取网络图片转换为Bitmap public Bitmap returnBitMap(final String url){ new Thread(new Runnable() { @Override public void run() { URL imageurl = null; ...
    Bitmap bitmap;
    //获取网络图片转换为Bitmap
    public Bitmap returnBitMap(final String url){
    
        new Thread(new Runnable() {
            @Override
            public void run() {
                URL imageurl = null;
    
                try {
                    imageurl = new URL(url);
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
                try {
                    HttpURLConnection conn = (HttpURLConnection)imageurl.openConnection();
                    conn.setDoInput(true);
                    conn.connect();
                    InputStream is = conn.getInputStream();
                    bitmap = BitmapFactory.decodeStream(is);
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    
        return bitmap;
    }
    展开全文
  • 获取网络图片(Bitmap)至内存或者SD卡

    千次阅读 2014-08-03 22:48:14
    * 获取网络图片 * 注意权限: * */ private Bitmap getBitmapFromNetWork(String imageUrl){ URL url=null; Bitmap bitmap=null; InputStream inputStream=null; HttpURLConnection ...
    	/**
    	 * 获取网络图片
    	 * 注意权限:
    	 * <uses-permission android:name="android.permission.INTERNET"/>
    	 */
    	private Bitmap getBitmapFromNetWork(String imageUrl){
    		URL url=null;
    		Bitmap bitmap=null;
    		InputStream inputStream=null;
    		HttpURLConnection httpURLConnection=null;
    		ByteArrayOutputStream byteArrayOutputStream=null;
    		try {
    			url=new URL(imageUrl);
    			httpURLConnection=(HttpURLConnection) url.openConnection();
    			httpURLConnection.setConnectTimeout(5*1000);
    			httpURLConnection.setReadTimeout(10*1000);
    			httpURLConnection.setDoInput(true);
    			httpURLConnection.setDoOutput(true);
    			if (httpURLConnection.getResponseCode()==HttpStatus.SC_OK) {
    				inputStream=httpURLConnection.getInputStream();
    				byteArrayOutputStream=new ByteArrayOutputStream();
    				int len=0;
    				byte [] buffer=new byte[1024];
    				while((len=inputStream.read(buffer))!=-1){
    					byteArrayOutputStream.write(buffer, 0, len);
    					byteArrayOutputStream.flush();
    				}
    				byte [] imageData=byteArrayOutputStream.toByteArray();
    				bitmap=BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
    			} else {
    				System.out.println("图片请求失败");
    			}
    		} catch (Exception e) {
    			    System.out.println("e="+e.toString());
    		}finally{
    			try {
    				if (byteArrayOutputStream!=null) {
    					byteArrayOutputStream.close();
    				}
    				if (inputStream!=null) {
    					inputStream.close();
    				}
    				if (httpURLConnection!=null) {
    					httpURLConnection.disconnect();
    				}
    			} catch (Exception e) {
    				 System.out.println("e="+e.toString());
    			}
    		}
    		
    		return bitmap;
    	}
    	
    	
    	/**
    	 * 获取网络图片且保存至SDCard
    	 * 注意权限:
    	 * <uses-permission android:name="android.permission.INTERNET"/>
    	 * <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    	 */
    	private void getBitmapFromNetWorkAndSaveToSDCard(String imageUrl,String filePath){
    		URL url=null;
    		File imageFile=null;
    		HttpURLConnection httpURLConnection=null;
    		FileOutputStream fileOutputStream=null;
    		BufferedOutputStream bufferedOutputStream=null;
    		InputStream inputStream=null;
    		BufferedInputStream bufferedInputStream=null;
    		try {
    			url=new URL(imageUrl);
    			httpURLConnection=(HttpURLConnection) url.openConnection();
    			httpURLConnection.setConnectTimeout(5*1000);
    			httpURLConnection.setReadTimeout(10*1000);
    			httpURLConnection.setDoInput(true);
    			httpURLConnection.setDoOutput(true);
    			if (httpURLConnection.getResponseCode()==HttpStatus.SC_OK) {
    				imageFile=new File(filePath);
    				if (!imageFile.getParentFile().exists()) {
    					imageFile.getParentFile().mkdirs();
    				}
    				if (!imageFile.exists()) {
    					imageFile.createNewFile();
    				}
    				fileOutputStream=new FileOutputStream(imageFile);
    				bufferedOutputStream=new BufferedOutputStream(fileOutputStream);
    				inputStream=httpURLConnection.getInputStream();
    				bufferedInputStream=new BufferedInputStream(inputStream);
    				int len=0;
    				byte [] buffer=new byte[1024];
    				while((len=bufferedInputStream.read(buffer))!=-1){
    					bufferedOutputStream.write(buffer, 0, len);
    					bufferedOutputStream.flush();
    				}
    			} else {
    				System.out.println("图片请求失败");
    			}
    		} catch (Exception e) {
    			    System.out.println("e="+e.toString());
    		}finally{
    			try {
    				if (fileOutputStream!=null) {
    					fileOutputStream.close();
    				}
    				if (bufferedOutputStream!=null) {
    					bufferedOutputStream.close();
    				}
    				if (inputStream!=null) {
    					inputStream.close();
    				}
    				if (bufferedInputStream!=null) {
    					bufferedInputStream.close();
    				}
    				if (httpURLConnection!=null) {
    					httpURLConnection.disconnect();
    				}
    			} catch (Exception e) {
    				 System.out.println("e="+e.toString());
    			}
    		}
    		
    	}

    展开全文
  • 异步获取网络图片Bitmap

    千次阅读 2015-08-20 14:18:53
    从网路获取图片,使用AsyncTask异步通信。 异步代码如下: public void addTask(String url) { new AsyncTask() { @Override protected Bitmap doInBackground(String... params) {
  • bitmap 获取网络图片

    2016-02-23 21:55:54
     bitmap[0] = BitmapFactory.decodeStream(in);  Message message = new Message();  message.what=0;  handler.sendMessage(message);  } catch (IOException e) {  e.printStackTrace(); ...
  • 展开全部在 Java中,JavaVM拥有自动管理内存的62616964757a686964616fe58685e5aeb931333337613736功能,Java的GC能够进行垃圾回收,但是如果ImageView使用过多的Bitmap的话,经常会报OOM(内存溢出)。造成内存溢出及...
  • Android 利用url获取Bitmap图片

    千次阅读 2016-02-11 12:38:23
    编程中我们经常需要通过url获取网络上的图片。下面将相关代码做一下总结注意:Android中这一操作必须在异步线程中进行public class BitmapUtil { public static Bitmap getBitmap(String url) { URL imageURL = ...
  • Android 异步获取网络图片Bitmap资源

    千次阅读 2013-10-25 21:18:58
    这里主要是为了把获取图片的代码单独出来和UI分开,方便扩展。   public interface Callback { public void onSuccess(T obj); public void onError(String error); } 线程执行结束后,回调接口,成功后调用...
  • FileUtil import android.content....import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.os.Environment; import java.io.ByteArrayOutputStream; import j...
  • 使用Glide工具,在build.gradle添加Glide,大括号里面不用写,我这里写是因为和我的其它第三方有冲突 implementation("com.github.bumptech.glide:glide:4.11.0") { ...} ... 获取Bitmap Glide.with(get.
  • Android—根据URL获取Bitmap图片

    万次阅读 2016-03-10 22:37:57
    1、根据图片的URL路径来获取网络图片,核心代码如下: (1) public static Bitmap getBitmap(String path) throws IOException{ URL url = new URL(path); HttpURLConnection conn = (HttpURLConnection)url.open...
  • C# Bitmap 从url获取图片 加载网络图片

    千次阅读 2020-01-08 11:06:14
    var webC = new System.Net.WebClient(); var bmp = new Bitmap(webC.OpenRead(imgUrl));
  • 在做微信分享大图的时候...2.对网络获取到的图片进行压缩处理。在此写篇文章,下面提供一个工具类,以后就可以直接拿来用了/*** 图片处理工具类*/public class ImageUtils {private int picType;//0表示默认png...
  • Nohttp 获取图片Bitmap

    千次阅读 2016-09-05 14:07:21
    Nohttp请求图片的两种简答的方式:普通请求以及缓存请求 开局声明:这是基于nohttp1.0.4-include-source.jar版本写的教程 由于nohttp功能强悍,因此需要多种权限,仅仅一个联网的权限是不够的,如果只给了...
  • 经常会遇到下面几种情况:1.通过图片url生成Bitmap对象和Drawable对象。2.对网络获取到的图片进行压缩处理。下面提供一个工具类,以后就可以直接拿来用了。
  • 2.对网络获取到的图片进行压缩处理。下面提供一个工具类,以后就可以直接拿来用了。本文为第一代码(diyidaima.com)原创,转载需注明出处import android.graphics.Bitmap;import android.graphics.BitmapFactory;...
  • 在做微信分享大图的时候遇到了这个...2.对网络获取到的图片进行压缩处理。 在此写篇文章,下面提供一个工具类,以后就可以直接拿来用了。 /** * 图片处理工具类 */ public class ImageUtils { private in...
  • android从网络获取图片直接存为bitmap

    千次阅读 2016-03-09 15:43:42
    Bitmap bitmap = ImageLoader.getInstance().loadImageSync(img_url)); 如果是自己写,就用一个异步进程,网上很多 public static Bitmap getImage(String Url) throws Exception { try { URL
  • 网络图片bitmap,并设置相应参数

    千次阅读 2016-11-07 15:12:03
    通常我们项目中用到网络图片达不到我们的既定要求时,我们想到的是将图片转成我们可以操作的对象进行处理,...例如 我们想获取一个网络图片的宽和高,那么就需要 先将网络图片利用BitmapFactory.decodeFile(Sting fi
  • <div><p>目前只支持识别本地图片bitmap 但是有一些bitmap识别不了 </p><p>该提问来源于开源项目:bertsir/zBarLibary</p></div>
  • 网络获取图片直接存为bitmap

    千次阅读 2013-01-17 00:02:48
    Bitmap bitmap=BitmapFactory.decodeStream(stream); int []buffer= new int [bitmap.getHeight() * bitmap.getWidth()]; bitmap.getPixels(buffer, 0 , bitmap.getWidth(), 0 , 0 , bitmap.getWidth(), bitmap...
  • android开发-通过HttpURLConnection获取网络内容, Bitmap把二进制格式的图片转为位图 布局:用ImageView显示图片 android:layout_width="fill_parent" a
  • 网络获取图片,并对其转流,保存到本地,并加载出来 https://timgsa.baidu.com/timg?image&amp;amp;amp;quality=80&amp;amp;amp;size=b9999_10000&amp;amp;amp;sec=1530532248868&amp;amp;...
  • 最近做一个功能的时候需要用到根据网络图片获取bitmap再进行下载到本地,网络框架一直使用的是Picasso,那就直接想得就是根据回调来获取 Picasso.with(context).load(url).into(new Target() { @Override public...
  • 网络图片获取原理

    2017-01-23 11:14:20
    现在的手机以离不开网络了,而且网络速度也越来越快,所以网络HTTP协议请求是必不可少的,现在我们 简单讲解一下网路图片获取,这里只是讲解一下获取原理,并不是造轮子给大家用,最后会推荐几个轮子给大家用。...
  • android 获取网络图片

    2014-06-25 22:28:58
    android 获取网络图片 通过HttpURLConnection获取网络图片bitmap 并将图片显示到imageView中
  • 使用Picasso获取网络请求Bitmap

    千次阅读 2018-05-25 13:52:23
    现在Android上的图片加载框架有很多,UniversalImageLoader、Picasso、Glide、Volley、Fresco等。我个人常用的是UniversalImageLoader、Picasso这两种,它们各有优点:UniversalImageLoader相对于Picasso内存更好...
  • 最近在做微信分享产品网页链接,需要把图片的url转为byte[],所以先要生成Bitmap。 Glide 4.9版本 配置网络权限 <uses-permission android:name="android.permission.INTERNET"/> 导入Glide库 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 441
精华内容 176
关键字:

网络图片获取bitmap