1

BitmapFactory 在 .png 图像上完美运行,但当我从 url 加载 jpeg 图像时返回 null。

BitmapFactory.decodeStream( (InputStream) new URL(URL).getContent(), null, options);

我使用此代码,但是当我提供 jpeg 图像 url 时,它返回 null。

我该怎么办?

4

3 回答 3

1

尝试这种方式可能它适用于我的.jpg图像

 Bitmap bitmaps = LoadImage(strMainImageLink, new BitmapFactory.Options()); where **LoadImage** method is as shown below 

加载图像方法

private Bitmap LoadImage(String URL, BitmapFactory.Options options)
  {      
   Bitmap bitmap = null;
   InputStream in = null;      
      try {
        //  in = OpenHttpConnection(URL);
          bitmap = BitmapFactory.decodeStream(OpenHttpConnection(URL), null, options);
        //  in.close();

      } catch (IOException e1) {
          Log.e("erererere", e1.toString());
      }
      return bitmap;              
  }


private InputStream OpenHttpConnection(String strURL) throws IOException{
 InputStream inputStream = null;
 URL url = new URL(strURL);
 URLConnection conn = url.openConnection();


 try{
  HttpURLConnection httpConn = (HttpURLConnection)conn;
  httpConn.setRequestMethod("GET");
  httpConn.connect();

  if (httpConn.getResponseCode() == HttpURLConnection.HTTP_OK) {
   inputStream = httpConn.getInputStream();
  }
 }

 catch (Exception ex)
 {
     Log.e("error",ex.toString());
 }
 return inputStream;
}
于 2012-09-03T09:53:18.713 回答
0

检查您的 jpg 中是否设置了颜色配置文件。因此,Android 位图解码器让我失望了。遗憾的是,我没有时间或资源来为此找到解决方案。

要知道jpg中是否设置了颜色配置文件,请尝试用photoshop打开它,如果有应该提示您询问您如何处理配置文件。

于 2012-09-03T09:41:24.223 回答
0

URL 唯一地标识网络上的资源。测试 url 的一个好方法是使用浏览器。我不知道 new URL(URL) 应该做什么。URL 采用字符串参数,但其他构造函数可用,请参阅https://docs.oracle.com/javase/7/docs/api/java/net/URL.html如果您将字符串传递给构造函数,您可能希望分配一个字符串的值或仅使用文字字符串示例 new URL("google.com") 至少您将获得除空指针以外的其他内容。我无法知道您的图片是什么网址,因为网络是一个很大的地方。

于 2017-12-09T17:47:16.523 回答