2

私の迅速なアプリでは、画像を文字列として変換する必要があり、次に Server 、つまり POST に送信する必要があります。次に、GET が必要な場合は、それをデコードしたくありません。画像ファイル名とパスを含む応答。

オンラインコンバーター:

サンプル画像をオンライン コンバーターで変換する場合は、こちらをご覧ください。次の文字列を取得しています。この文字列を API に渡すと、正常に画像を取得できます。

出力:

IVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR.... .....CIBhIIgQRCIIEQSCAQAgmEQAIhkEAIJBAIgQRCIIEQSCAEEggEQAIhkEAIJCgN/F+AAQAXoGXl+IGgwwAAAg5=JgwwAAAg5

私のコーディングを通して

サンプル画像をコーディングで変換すると、以下の文字列が得られます。この文字列を API に渡すと、正常に追加されます。しかし、ブラウザでもその画像を手動で表示できません。

以上、2 つの出力文字列が同じではありません。どうしてか分かりません?これを解決するにはどうすればよいですか?

コード:

var image : UIImage = UIImage(named: "home_recharge.png")!
        var imageData = UIImagePNGRepresentation(image)
        let base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.allZeros)
        println("base64String    \(base64String)")

出力:

iVBORw0KGgoAAAANSUhEUgAAAJAAAACQCAYAAADnRuK4AAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAABIAAAAKAAAAEgAAABIAAAKygzM7MwAAAqWSURBVHgB7FwJ0JZDHC9yhJTkLuRMjuQ+opAr5zjGqAwZx...... .......FlIs5ASSDNQLA7EMtYMpBlICaQZKBYHYhlrBtIMpATSDBSLA7GMNQNpBlICaQaKxYFYxpqBNAMpgTQDxeJALGPNQJqBlECagWJxIJaxZiDNQP8B+6MkTad9NtcAAAAASUVORK5CYII=

4

1 に答える 1

1

png 画像表現を使用しますが、サーバーは画像を.jpg拡張子付きで保存するため、ブラウザは画像を JPEG ファイルとして読み取ろうとして失敗します。

拡張子をUIImagePNGRepresentation付けて画像を置き換えるUIImageJPEGRepresentationか保存する必要があります。.png

拡張子が間違っているにもかかわらずブラウザがオンライン コンバータの結果画像を開くことができる理由は、UIImagePNGRepresentation がメタ データとオンライン コンバータの画像を削除するため、ブラウザがメタ データなしで間違った拡張子を持つ画像の実際のタイプを認識できないためです。

于 2015-10-07T06:50:44.347 に答える