Android无法成功将HTTP图像/ jpeg响应转换为Bitmap

时间:2014-07-18 15:48:28

标签: android image http encoding character-encoding

我使用image / jpeg类型响应从服务器脚本发送图像。这是服务器代码(使用CodeIgniter的php):

       $file = file_get_contents("http://www.menucool.com/slider/prod/image-slider-5.jpg");
       $this->output->set_header("Content-Type: image/jpeg; charset=UTF-8");
       $this->output->set_header("HTTP/1.1 200 OK");
       $this->output->set_header("Accept-Charset", "utf-8");
       $this->output->set_header("Accept-Encoding", "");
       $this->output->set_output($file);

此脚本将图像发送到android,我尝试使用以下脚本进行解码:

Log.e("response",response);
            try {
                String decompressedResponse = decompress(response.getBytes("UTF-8"));       
                InputStream instream = new ByteArrayInputStream(decompressedResponse.getBytes("UTF-8"));
                Log.e("inputstream",instream.toString());
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                int bufferSize = 1024;
                byte[] buffer = new byte[bufferSize];
                int len = 0;
                try {
                    while ((len = instream.read(buffer)) != -1) {
                    baos.write(buffer, 0, len);
                    }
                    baos.close();
                } catch (IOException e) {

                }
                byte[] b = baos.toByteArray();
                Log.e("bytearray",b.toString());
                imageBitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
                image.setImageBitmap(imageBitmap);
            } catch (UnsupportedEncodingException e) {
                Log.e("UnsupportedEcondingEception","UNSUPPORTEDENCODINGEXCEPTIOn");
            } catch (IOException e1) {
                return;
            }

记录响应显示如下字符:

���8�@

这里非常奇怪的是,如果我从网络浏览器调用此脚本,它会显示图像,但显然android和eclipse无法解码此编码。

我认为这是一个Android问题而不是服务器问题。任何建议,提示都非常感激,因为我已经被困了一段时间。

0 个答案:

没有答案