2014-11-04 3 views
0

내가 그런 이미지의 범위의 URL을 얻으려고와 이미지의 URL을 얻을 수 있습니다 :는 jsoup

java.net.MalformedURLException: Unknown protocol: data 
at java.net.URL.<init>(URL.java:184) 
at java.net.URL.<init>(URL.java:127) 

그래서 URL을 인쇄하려고 노력하고 난이 얻을 :

data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7 

을 왜 내가 요소 내가 SEL 것을 100 % 확신하기 때문에 나는 알아낼 수 요법 corrent이며, 또한 나는 웹 사이트의 다른 부분과 같은 과정을하고 그것을 작동합니다 ..

UPDATE 1 :

byte[] decodedString = Base64.decode(imageMainUrl, Base64.DEFAULT); 
Bitmap bitmap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
: 나는 'base64' 이미지를 디코딩하는이 방법을 시도했다

하지만 결과는 동일합니다 ..

+1

에서 org.apache.commons.codec.binary.Base64을 사용했다. 바이트 배열에 저장하고 BitmapFactory.decodeByteArray, http://developer.android.com/reference/android/graphics/BitmapFactory.html로 전달하면 안드로이드에서 디코딩 할 수 있습니다. –

답변

0

그것은 데이터 URI 방식

http://en.wikipedia.org/wiki/Data_URI_scheme

이야

URI에 인라인 데이터를 추가 할 수 있습니다. Bitmaphttp://docs.oracle.com/javase/7/docs/api/javax/xml/bind/DatatypeConverter.html#parseBase64Binary%28java.lang.String%29

  • 사용이 배열 ByteArrayInputStream
  • 그것을 해독하기 위해 BitmapFactory를 사용하여 구축 :
    • 는, 여기에서 상세한 정보를 URI의 64 기수 부분을 추출하고 parseBase64Binary으로 바이트 배열을 얻을

    편집

    이 코드 1px * 1px GIF 이미지를 제공합니다. 나는 HTML에 대한 전문가는 아니지만, 이미지의 내용이 실제로 대신 URL을 가리키는의,의 src 태그에 포함 된 것 같다 commons-codec

    String uri = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"; 
    byte[] decodedString = Base64.decodeBase64(uri.substring(uri.indexOf("data:image/gif;base64,") + "data:image/gif;base64,".length())); 
    ByteArrayInputStream is = new ByteArrayInputStream(decodedString); 
    FileOutputStream os = new FileOutputStream(new File("/tmp/test.gif")); 
    
    byte[] buffer = new byte[1024]; 
    int length; 
    
    // copy the file content in bytes 
    while ((length = is.read(buffer)) > 0) 
    { 
        os.write(buffer, 0, length); 
    } 
    
    is.close(); 
    os.close(); 
    
  • +0

    에서 제거해야합니다. imageMainUrl 접두사'data : image/gif; base64, ' – ToYonos

    +0

    같은 결과가 발생했습니다. – DamianFox

    +0

    동일한 결과가 무슨 뜻입니까? – ToYonos