1件ずつ表示 
--.--.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

続きを読む
Category: スポンサー広告
2015.09.08 Tue

EXIF情報

EXIF情報の読み、書き

 JavaScript だけで EXIF を読む

を参考にしました。

EXIF 情報で値の内容が長すぎるもの

UserComment
65,83,67,73,73,0,0,0,60,104,114,62,227,130,191,227,131,158,229,144,155,49,49,52,52,32,60,98,114,62,13,10,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,112,108,97,

となります。これを、解決しました。

var tags  = exif.getAllTags();     var table = "<strong>EXIF 情報

</strong><table><thead><tr><th>Key</th><th>Value</th></tr></thead><tbody>";

    var longValues = new Array();

    for( var key in tags )     {

                                  if(key == "UserComment") {                                                                    ucd= tags[ key ];                                      var ucds="";var j=0;                                      for (var i=0;i<ucd.length;i++) {                                       ucds +=String.fromCharCode(ucd[i]);                                       ucdx[j++]= ucd[i];                                                                            }                                                                        var jsonString = Utf8.decodeArray(ucdx);                                          alert(jsonString);                                        tags[ key ] = jsonString;                                                                      }

核となる部分は、下の関数です。バイナリデータをStringに変換するルーチンです。これも、ネットで見つけました。

var Utf8 = {     // public method for url decoding     decodeArray: function (utfArray) {         var string = "";         var i = 0;         var c = c1 = c2 = 0;

        while (i < utfArray.length) {

            c = utfArray[i];

            if (c < 128) {                 string += String.fromCharCode(c);                 i++;             }             else if ((c > 191) && (c < 224)) {                 c2 = utfArray[i + 1];                 string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));                 i += 2;             }             else {                 c2 = utfArray[i + 1];                 c3 = utfArray[i + 2];                 string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 &

63));                 i += 3;             }

        }         return string;     } }

コメント欄の出力例です
タマ君1144

 

スポンサーサイト

続きを読む
Category: インターネット Comments (0) Trackbacks (0)

この記事へのコメント:

この記事へコメントする:

    

この記事のトラックバックURL:

http://xmod60.blog85.fc2.com/tb.php/2920-1d6700b3

この記事に対するトラックバック:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。