2012-07-02 3 views
0

좋아요?BitmapFactory.decodeByteArray가 null을 반환합니다.

public static Bitmap stringToImage(String base64) { 

    byte[] decodedString = decode(base64, Base64.DEFAULT); 
    return BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); 
} 

내 base64 문자열이 "data : image/jpeg; base64"로 시작하면이 코드는 null을 반환합니다. 하지만이 접두어를 제거하면이 코드가 제대로 작동합니다! 이 문제를 해결하는 방법? 내가 혼란 스러워요하지 않는 한 (주석 1 How to display Base64 images in HTML?)

+0

나는 수동으로 접두사를 제거 할 수 있지만 클래스/메소드가 있는지 그 자동 것이다 그것을 제거 하시겠습니까? – monyag

+0

regexp-Pattern.compile ("^ (data : image /.+; base64,). +");을 사용합니다. Android에 mime 유형 스트립 메소드가 없습니다. ( – monyag

답변

0

String base64=""; 
base64.replaceAll("data:image/jpeg;base64,", ""); 

PLS 통해 UR 문자열에 따라 주어진 문자열을 변경 기능 문자열을 전달하기 전에 사용할 수 있습니다

1

내가 내 base64로 문자열을 테스트하고 잘 작동, "데이터 : 이미지/JPEG, Base64로는,"base64로 문자열의 유효한 일부가 아닙니다. 그렇다면 올바르게 디코딩하지 않는 것은 당연합니다. 문제를 일으키는 경우 디코딩하기 전에 문자열의 머리 부분에서 제거하십시오.

관련 문제