2016-10-18 19 views
0

私はこの画像をここに貼り付けたbase64文字列として表しています: https://paste.ubuntu.com/23343680/ 画像があります。私はこのbase64文字列はデコードされません

Convert.FromBase64String 

を呼び出していますし、それが今、私は同じ文字列を貼り付けるには、このウェブサイトhttp://codebeautify.org/base64-to-image-converterを使用しているし、それがデータの画像がうまくレンダリングしてくれ

{"Invalid length for a Base-64 char array or string."} 

を与えます。 ここで私が間違っていることは何ですか、私はバイトを取得する必要があります[私はイメージを作るが、私は傾ける。ありがとう。

+0

'Convert.FromBase64String'は何を供給しますか?あなたが引数としてメソッドを渡す文字列をどのように生成するのですか? – Benj

答えて

6

長さが4で割り切れるまで=を追加する必要があります。有効なbase64文字列のみです。

このコードがどうなる

string s = "yourVeryLongBase64String"; 

if ((s.Length % 4) > 0) 
{ 
    int diff = 4 - (s.Length % 4); 
    s = s.PadRight(s.Length + diff, '='); 
} 

byte[] b = Convert.FromBase64String(s); 
+0

ありがとう、これはうまくいきます。今、この1つの問題があります。このhttps://paste.ubuntu.com/23343796/を見てクロムブラウザに貼り付けると画像が表示され、このコードをhttps:// paste .ubuntu.com/23343806 /(私が書いた)base64変換バイト配列イメージを保存して比較すると、イメージはクロムで見えるものとは全く異なります。あなたは何が起こっているのか教えてくれますか?ありがとう。 – user734028

+0

私は分かりません。ごめんなさい。 –

+0

こんにちは、あなたのコードに小さなバグが見つかりました。int diff = s.Length%4; shudはint diff = 4 - (s.Length%4)です。 – user734028

1
string str = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAHgAoADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDk6KKKACiiigAooooA/EuiiigAooooAKKKKACiiigD9tKKKKACiiigAooooAKKKKAPxLooooAKKKKACiiigAooooA/bSiiigAooooAKKKKACiiigD8S6KKKACiiigAooooAKKKKAP20ooooAKKKKACiiigAooooA/EuiiigAooooAKKKKACiiigD9tKKKKACiiigAooooAKKKKAPxLooooAKKKKACiiigAooooA/bSiiigAooooAKKKKACiiigD8S6KKKACiiigAooooAKKKKAP20ooooAKKKKACiiigAooooA/EuiiigAooooAKKKKACiiigD9tKKKKACiiigAooooAKKKKAPxLooooAKKKKACiiigAoo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="; 
      byte[] arr = Convert.FromBase64String(str); 

文字列の最後に==を追加します。それが動作します。あなたが渡している入力は有効ではありませんbase64の値

関連する問題