SlideShare a Scribd company logo
第3回 Webkit/HTML5勉強会



File APIと加速度センサー


      nakamura001

       2010/02/17
File API
Firefox 3.6で
   使えます
デモ
http://tsuyobi.heteml.jp/html/firefox/file_api/bitmap_info/
イベントリスナーの登録


dropbox = document.getElementById("dropbox");
dropbox.addEventListener("dragover", dragover, true);
dropbox.addEventListener("drop", drop, true);
Drag Over時の処理

dropbox.addEventListener("dragover", dragover, true);

function dragover(e) {
    // イベントのさらなる伝播を止める
    e.stopPropagation();
    // ブラウザのアクションを動作させない
    e.preventDefault();
}
Drop時の処理
function drop(e) {
    var dt = e.dataTransfer;
    var files = dt.files;


    if (files.length > 0) {
        var binaryReader = new FileReader();
        binaryReader.onloadend = function() {
            var file = files[0];
        (ここでファイルに対する処理を実行)
        }
        binaryReader.readAsBinaryString(files[0]);
    }
}
ファイルに対する処理

var binaryReader = new FileReader();
binaryReader.onloadend = function() {
    info_msg = info_msg + "size : " + file.size + "n";
    info_msg = info_msg + "type : " + file.type + "n"


    pos = 0;
    var c = binaryReader.result.charCodeAt(pos);
}
ファイルに対する処理

var binaryReader = new FileReader();
binaryReader.onloadend = function() {
    info_msg = info_msg + "size : " + file.size + "n";
    info_msg = info_msg + "type : " + file.type + "n"
                 ファイルのどの位置からデータを取得するかを指定


    pos = 0;
    var c = binaryReader.result.charCodeAt(pos);
}
少々、面倒な事が…
1Byteずつしか
  読めない
intやlongなどの
データはどうする?
サンプルは
どうしてる?
JPEGファイルから
Exif情報を読み込む
            サンプル
http://demos.hacks.mozilla.org/openweb/FileAPI/
良い感じのライブラリに
 なってる事を発見
exif.js
パクっ活用させて貰おう
ライセンスはMPL
素晴らしい!!
取得できるデータ

  関数名                データ
getByteAt        Byte(符号無し)

getShortAt    Signed Short(符号有りの16bit)


getSLongAt    Signed Long(符号有りの32bit)


getLongAt     Unsigned Long(符号無し32bit)


getStringAt       文字列データ
テキストファイルのとき



  text = file.getAsText("utf-8");



【参考サイト】Firefox3.6βで利用できるFile APIの可能性について:マピオンラボ(Javascript)
http://labs.mapion.co.jp/blog/javascript/firefox36file_api.php
テキストファイルのとき

                                                       文字のエンコードを指定




  text = file.getAsText("utf-8");



【参考サイト】Firefox3.6βで利用できるFile APIの可能性について:マピオンラボ(Javascript)
http://labs.mapion.co.jp/blog/javascript/firefox36file_api.php
加速度センサー
すみません、
   これも現在は
Firefox 3.6だけが対応
しかも対応するパソコンは
最近のMacのノートと
  一部のThink Pad
デモ

http://tsuyobi.heteml.jp/html/firefox/orientation_event/index2.html
使い方は至って簡単
使い方

function handleOrientation(orientData) {
    var x = orientData.x;
    var y = orientData.y;
    var z = orientData.z;
}
window.addEventListener("MozOrientation", handleOrientation,
true);


              ・addEventListenerで追加するだけ
              ・X,Y,Zの3つの軸の加速度が取得可能
1つだけ注意!!
ノイズが出る事が
  有るみたい
デモ

http://tsuyobi.heteml.jp/html/firefox/orientation_event/index2a.html
対策
ローパスフィルタ
ローパスフィルタ

function handleOrientation(orientData) {
  var accel_scale = 500.0;
  var filter_val = 0.1;


  pos_x = (orientData.x*accel_scale * filter_val) +
    (pos_x * (1.0 - filter_val));
  pos_y = (orientData.y*accel_scale * filter_val) +
    (pos_y * (1.0 - filter_val));


            この処理により、加速度の値は徐々に反映され
            るようになり急激な変化の値が直接反映されな
            くなる。
ローパスフィルタ

function handleOrientation(orientData) {
  var accel_scale = 500.0;
  var filter_val = 0.1;


  pos_x = (orientData.x*accel_scale * filter_val) +
    (pos_x * (1.0 - filter_val));
  pos_y = (orientData.y*accel_scale * filter_val) +
    (pos_y * (1.0 - filter_val));


 とりあえず、     この処理により、加速度の値は徐々に反映され
            るようになり急激な変化の値が直接反映されな

 この式を挟んでおけばOK
            くなる。
その他、関連資料はこちら

 http://www32.atwiki.jp/nakamura001/pages/82.html

More Related Content

PDF
200319 eash python_shareslide_functions
PDF
JavaScript入門
PDF
Javaセキュアコーディングセミナー東京第3回演習
PPTX
Drag anddropfilereader
PDF
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
PDF
研究生のためのC++ no.7
PDF
研究生のためのC++ no.2
PDF
BMXUG ブロックチェーンハンズオン 20190622
200319 eash python_shareslide_functions
JavaScript入門
Javaセキュアコーディングセミナー東京第3回演習
Drag anddropfilereader
[TL06] 日本の第一人者が C# の現状と今後を徹底解説! 「この素晴らしい C# に祝福を!」
研究生のためのC++ no.7
研究生のためのC++ no.2
BMXUG ブロックチェーンハンズオン 20190622

What's hot (20)

PPTX
前期講座09
PDF
メタメタプログラミングRuby
PDF
Python で munin plugin を書いてみる
PDF
Subprocess no susume
PDF
Haskell超初心者勉強会11
PDF
Goをカンストさせる話
PDF
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
PDF
OSSから学ぶSwift実践テクニック
KEY
Ll xcode
PDF
Javaセキュアコーディングセミナー東京第3回演習の解説
PPTX
ナウなヤングにバカうけのイカしたタグ付き共用体
PDF
Haskell で CLI
PPT
Glibc malloc internal
PDF
Rakuten tech conf
PPTX
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
PDF
Javaセキュアコーディングセミナー東京第2回演習の解説
PDF
JavaScript 勉強会 ― 変数・演算子・文
PDF
Mock and patch
PDF
Go conference 2017 Lightning talk
前期講座09
メタメタプログラミングRuby
Python で munin plugin を書いてみる
Subprocess no susume
Haskell超初心者勉強会11
Goをカンストさせる話
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
OSSから学ぶSwift実践テクニック
Ll xcode
Javaセキュアコーディングセミナー東京第3回演習の解説
ナウなヤングにバカうけのイカしたタグ付き共用体
Haskell で CLI
Glibc malloc internal
Rakuten tech conf
C# 式木 (Expression Tree) ~ LINQをより深く理解するために ~
Javaセキュアコーディングセミナー東京第2回演習の解説
JavaScript 勉強会 ― 変数・演算子・文
Mock and patch
Go conference 2017 Lightning talk
Ad

Viewers also liked (6)

PDF
サーバ構築自動化 On aws sqaleの場合
PPTX
Jenkinsとhadoopを利用した継続的データ解析環境の構築
PDF
Munin manager - monitering casual talk #2
PDF
スマートフォン対策ビジネスセミナー
PDF
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
PDF
テスト環境まるごとAwsにのっけてみた
サーバ構築自動化 On aws sqaleの場合
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Munin manager - monitering casual talk #2
スマートフォン対策ビジネスセミナー
スマホキャンプサマー2012:ANEとアプリ内課金に挑戦
テスト環境まるごとAwsにのっけてみた
Ad

Similar to 第3回Webkit/HTML5勉強会 - File APIと加速度センサー (20)

PDF
Node-v0.12の新機能について
PDF
Ajax 応用
PDF
jQuery超入門編
PPTX
HTML5&API総まくり
PDF
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
PDF
ちょっと詳しくJavaScript 第2回【関数と引数】
PDF
Twitter sphere of #twitter4j #twtr_hack
PDF
Apache Torqueについて
PDF
Data api workshop at Co-Edo
KEY
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
PDF
Html5 Web Applications
PDF
速くなければスマフォじゃない - インターンバージョン-
PPTX
Chrome Extensionsの基本とデザインパターン
PPTX
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
PPTX
Java EE8 Report
PDF
初めての Data api cms どうでしょう - 大阪夏の陣
PDF
最新PHP事情 (2000年7月22日,PHPカンファレンス)
PDF
明日から使える Java SE 7
PDF
Android Lecture #03 @PRO&BSC Inc.
PPTX
イベント駆動プログラミングとI/O多重化
Node-v0.12の新機能について
Ajax 応用
jQuery超入門編
HTML5&API総まくり
ハンズオン勉強会 はじめてのJavaScriptとSPARQL
ちょっと詳しくJavaScript 第2回【関数と引数】
Twitter sphere of #twitter4j #twtr_hack
Apache Torqueについて
Data api workshop at Co-Edo
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Html5 Web Applications
速くなければスマフォじゃない - インターンバージョン-
Chrome Extensionsの基本とデザインパターン
「Windows 8 ストア アプリ開発 tips」 hokuriku.net vol.11 (2013年1月26日)
Java EE8 Report
初めての Data api cms どうでしょう - 大阪夏の陣
最新PHP事情 (2000年7月22日,PHPカンファレンス)
明日から使える Java SE 7
Android Lecture #03 @PRO&BSC Inc.
イベント駆動プログラミングとI/O多重化

第3回Webkit/HTML5勉強会 - File APIと加速度センサー