SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
第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

Mais conteúdo relacionado

Mais procurados

Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
 
Haskell超初心者勉強会11
Haskell超初心者勉強会11Haskell超初心者勉強会11
Haskell超初心者勉強会11
Takashi Kawachi
 
Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
JPCERT Coordination Center
 
Javaセキュアコーディングセミナー東京第2回演習の解説
Javaセキュアコーディングセミナー東京第2回演習の解説Javaセキュアコーディングセミナー東京第2回演習の解説
Javaセキュアコーディングセミナー東京第2回演習の解説
JPCERT Coordination Center
 

Mais procurados (20)

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

Destaque (6)

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

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

Node-v0.12の新機能について
Node-v0.12の新機能についてNode-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
 
ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】
株式会社ランチェスター
 
Data api workshop at Co-Edo
Data api workshop at Co-EdoData api workshop at Co-Edo
Data api workshop at Co-Edo
Yuji Takayama
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
linzhixing
 
Html5 Web Applications
Html5  Web ApplicationsHtml5  Web Applications
Html5 Web Applications
totty jp
 
速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-速くなければスマフォじゃない - インターンバージョン-
速くなければスマフォじゃない - インターンバージョン-
Kazunari Hara
 
明日から使える Java SE 7
明日から使える Java SE 7明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
 

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

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

Último

TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 

Último (8)

東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

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