0

Unity3d で base64 文字列を使用して Facebook のサムネイル画像データをエンコードおよびデコードしています。ユーザーがプロフィール写真を持っていない場合、結果の画像は赤い疑問符になります。無効な画像が送信されていることを認識して、選択したデフォルトの画像に置き換える方法はありますか?

その人が持っていないときにFacebookのプロフィール写真をデコードして得られた結果

C# で Convert.FromBase64String (エンコードされた文字列) を使用して、文字列を画像データに変換しています。

4

3 に答える 3

0

プロフィール画像が存在しないときにエラー画像 (「赤い疑問符」画像など) が返されることが予想される場合は、単純にそのケースをテストして、選択した別の画像に置き換えることができると思います。赤い疑問符の画像をリソースとして保存し、その Base64 文字列をリクエストから返された各画像の Base64 と比較することもできます。

その場合、重要なコードは次のようになります (画像の Base64 文字列をリソースに既に格納していると仮定します)。

ResourceManager rm =
    new ResourceManager("ExampleAppData", typeof(ExampleApp).Assembly);

String errorImageBase64 = rm.GetString("ErrorImageBase64");

// the image you get from your request
String resultImageBase64 = GetProfileImageBase64();

Image missingProfile;
if(resultImageBase64.Equals(errorImageBase64))
{
    missingProfile = ImageFromBase64String(rm.GetString("MissingProfileBase64"));
}
else
{
    missingProfile = ImageFromBase64String(resultImageBase64);
}

参考文献:
http://msdn.microsoft.com/en-us/library/2xsy4hac.aspx
http://ozgur.ozcitak.com/snippets/2009/12/21/base64-encoding-an-image-with-csharp .html

于 2013-05-29T17:24:46.083 に答える