0

.net Webサービスからbase64Binaryでエンコードされた画像を取得していますが、デコードされた文字列を使用してビットマップを作成しようとすると、nullになります。なぜですか?あなたの助けのためのthx!:D

  1. 応答文字列はnullではないと確信しています。テストしたところ、長さは28000です。また、オンラインデコーダーでコンテンツを確認すると、必要な画像が返されます。

  2. ビットマップファクトリーを使用する前に、AndroidネイティブのBase64ライブラリを使用してデコードしています

  3. Ksoap2を使用してImagebase64文字列を取得します

  4. Android 2.2 googleAPIです

コードは次のとおりです。

String serverResponse = "" + result.get(0);

byte[] decodedString = Base64.decode(serverResponse, Base64.DEFAULT);

imgMap = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);

ImgMapはビットマップであり、常にnullになりますが、何が間違っていますか?

次のようなログエントリが表示されます。

TAG: SKIA     
TEXT: ---SkImageDecoder:: Factory returned null

これはdecodeStringがどのように見えるかです:

06-13 03:09:54.957: D/CODED(491): SIZE: 22486
06-13 03:09:55.008: D/CODED(491): Content: first 200 positions of the array: 737342012400068796785786984327110111410997110121068656783328411111110810710511632737305048495058485358505132494858515158525200000000000000000000000000000000000000000000000000000000000000000250-20401000000001301000-22900113010003930021301000100031301000400061301000000071
4

1 に答える 1

1

私はそれを理解したと思います。

応答ベース64文字列はTIFF画像であり、Androidはその形式をサポートしていないため、Factoryはそれを画像として認識せず、デコードプロセスを停止します。

于 2012-06-14T14:18:11.047 に答える