ひだっちブログ › MEMO › 2011年11月

スポンサーリンク

この広告は一定期間(1ヶ月以上)更新のないブログに表示されます。
ブログ記事の情報が古い場合がありますのでご注意下さい。
(ブログオーナーが新しい記事を投稿すると非表示になります。)
  

Posted by at

2011年11月20日

ヤエー v(・∀・)yaeh!

v(・∀・)yaeh!
ヤエー

なんの事かというと、
バイクで、すれ違う時に、ピースサイン出しますよね。
あれです。

それがなんで、ヤエーかというと、
誰かが、Yeah!を、Yaeh!
と間違えた事が始まりらしいです。

【ピースサイン】北海道バイクツーリング〜ひたすら手を振るよ〜
この動画をみると、「ヤエー」したくなります。

そして、
1.免許無い人は、取りたくなる
2.バイク無い人は、ほしくなる
3.バイク持ってる人は、北海道へ行きたくなる
よい動画です。

そう、
今でもバイクは大好きなはずなのに、
中高生のころのような情熱が冷めてしまっている
そんな、おじさんな自分がいる。

バイクに乗らなくなって、十数年。
金銭的に維持できないからとか言って、
乗らない理由を、無理やり納得させているだけの自分がいる。



ポエムな感じになっちゃいましたが、
ここから、EXCEL劇場です。

まずは、
バイクに乗らなくなって、時間が経っているので、
イメージトレーニングから。


イメージしやすいところで、やってみたいと思います。
想像してごらん・・・

そこは、
皆さんもよく知っている有名な場所です。

青空の下。

自然の中を走って見たい。

そう、
北海道のような。

 ・
 ・
 ・

こんなところで、言ってみよう。

「ヤエー!」

そうです。
WINDOWS XPのデスクトップに向かって練習します。

v(・∀・)yaeh!


なんだか、
こうして、練習していると、「したんかいッ!」 (ひとりツッコミ)
バイク乗っていたころを思い出します。
「自分が乗ってた頃も、ピースサインしてたなぁ」
初めて、ピースサインを出された時は、
びっくりして、思わず頭を下げました(笑)

自分は、左手を横にしてピースしてましたけど、
縦にする人、指開く人、閉じる人、振る人
いろんなピースサインがあって、楽しかった事を思い出します。

見知らぬ、誰かわからない人と、すれ違いの一瞬のコミュニケーション。
言葉じゃない。
お互いの、よい旅の安全を祈って、あいさつ。
バイクの良さの一つだと思います。

子供が小さかった時、電車の運転士さんや、ダンプの運転手の人が、手を振ってくれたりした時も、暖かい気持ちになりました。

街で人と歩いてすれ違っては、やらないですからね。

乗り物って、一人で乗っていても、ひとりじゃないような気にさせる事ありますよね。
相棒といっしょにいるというか。
一人じゃ出来ない事もできてしまうんです。

逆に、普段やらないこともやってしまうので、
マナーには、気を付けたいと思います。
ハンドル握ると性格が変わるってやつです。
気をつけましょう。


バイク乗りの皆さん。
そろそろ飛騨では、バイクは厳しいですが、お気をつけて。
v(・∀・)yaeh!
  

Posted by MEMO at 10:22Comments(0)EXCEL劇場

2011年11月14日

ラーメンタイマー 作ってみた

最近、休日の予定がなく、ヒマなので、
テレビ見ながら、ホビープログラミングしてます。

前回は、なんだか分からない事
「エクセルのセルに色を付けて画像を作る」をやったので、

今回は、もう少し分かりやすくて、
実用的?なラーメンタイマーに挑戦です。
もちろんエクセルで。

いきなりですが、完成品です。
チョットだけそのままお待ちください。

動いてますか?サンプル画像は、8秒のカウントダウンです。
これは、GIFアニメーションなので、動いてるように見えるだけです。
(一応1秒で画像が更新するようになってます。)

実際には、エクセル上で使用します。
赤い部分で、秒数をセットしてスタートボタンを押すと
確認画面が出て、「はい」でスタート、「いいえ」でキャンセルとなります。

カウントダウンするだけでは、つまらないので、
LEVEL表示をつけました、10%単位で、青から赤に変化します。
ラーメンの出来あがりに合わせて、LEVELが赤くなるので、
テンションが上がる仕組み?です。

もうひとつ、コンピュータっぽくするため、
秒数が2進数のビットで、ON・OFFの点滅をするようにしました。
画面は、昔のグリーンCRTみたいにしたつもりです。


カップラーメン食べる時は、180秒でセットします。

だんだんラーメンが食べたくなってきましたが、寝る前の食事はがまんしときます。

注意事項
このプログラムは、処理を途中で、1000ms(1秒)sleep停止
させているだけなので、他の処理をしている時間は計算していません。
よって、
その分だけ、時間が遅れます。
3分で、1秒くらい遅れるようです。結構誤差がでました。

対策としては、1000msを995msにしたりして、調整すれば
誤差は減るのでしょうけど、パソコンのスペックで変わるでしょうし、
正確にカウントダウンさせるスキルはありません。

ラーメンの出来あがりの1秒にはこだわらないので、これでOKとします。

途中で止める時のために、STOPスイッチも付けておきました
た。  

Posted by MEMO at 21:28Comments(0)EXCEL劇場

2011年11月08日

これ何だ?プログラム編

またまた備忘録となります。
いよいよ最終回です。ご興味があれば、どうぞ。

シリーズになってます。
ここから先は、以前の記事もご覧にならないと
何やってんの?
が伝わらないと思います。

これ何だ?正解は・・・
  エクセルのセルに色を付けて、
  画像を表現することに挑戦してます。
これ何だ?の種明し
  一つ一つ手作業でセルに色は付けられないので、
  VBA(プログラム)で処理します。
ビットマップ画像の仕組み
  画像の点1px分のデータを取り出すために、
  ピットマップファイルの仕組みをしらべました。
ビットマップ画像の仕組み2
  ビットマップファイルと4の倍数について調べました。

の続きです。


画像を読込み、1ピクセルをセル一つに割り当てて、
エクセルのセルで画像を再現する事をVBA(プログラム)でやってます。

今回、
最終回は、プログラムの中身についてMEMOしておきます。
これです。



データの中身が確認できるように、データーチェック部分で、
内容をエクセルのB列に書き出しています。

ここで、問題になっていた
画像サイズに制限がある理由についてですが、

今さらですけど、

サイズの大きい画像でエラーが起こるのは、
このデータチェック部分のせいのような気がしてきました。

データーチェック部分のループ i が、
整数のため、32767までしかカウントできないためではないか?
と記事を書きながら、思いました。



続きは、次回にしようと思いましたが、シリーズが長くなっているので、
このまま続けます。

急遽、実験してみます。
データチェック部分を無効にして実行してみます。

横幅240px 高さ180px
240 × 180 × 3 + 54 + 2 = 129656バイトのファイルです。

なんと!できました。
バグったかと思うほど、3分くらい?処理に時間がかかりました。


通常の100%表示にするとこんな感じです。

セル一つ一つに色が付いているのが確認できます。


詳しい原因は、あくまで推測ですが、
データーのチェックと確認の為、作成した部分で、
不具合を起こしていました。
ちょっとショックでしたが、ギリギリで気付いてよかったです。

< 追記 >
エクセルの行列の上限や、ループ変数 L Cの上限をクリア
しているわけではありません。
エラー処理は行っていないので、エクセルの列数、処理時間も考えて
240px × 180pxくらいが、限界と思っています。



いつもの事ですが、
内容に誤りがあっても責任は負えません。


長かったシリーズも、これで完結です。
何かの役に立つとは思いませんが、やってみたかった事なので、
書き留めて置くことにしました。



おまけ  続きを読む

Posted by MEMO at 22:07Comments(0)EXCEL劇場

2011年11月05日

ビットマップ画像の仕組み2

またまた備忘録となります。
今回も、こっそりアップです。ご興味があれば、どうぞ。

これ何だ?正解は・・・
これ何だ?の種明し
ビットマップ画像の仕組み
の続きです。

ここから先は、以前の記事もご覧にならないと
何やってんの?
が伝わらないかもしれません。

ビットマップ画像をエクセルのセルで、再現することに挑戦してます。

画像を4の整数倍で、トリミングしなければならない理由を
明らかにしてみたいと思います。

横8px 縦8pxの画像の仕組みは、
前回の記事で、なんとなく分かりました。

画像データの中身(バイナリデータ)を1バイトづつ書き出しました。

ここまでが、前回の内容。


横6px 縦8pxの画像がどうなっているか
前回と同じように、画像ファイルを1バイトづつ調べていきます。

エクセルのセルへ、1バイトづつ書き出しました。


◆ヘッダ部分
 ファイルサイズ

◆情報ヘッダ部分
 横幅 6
 高さ 8

◆画像データ領域
 6px × 3バイト = 18バイト
 横幅を4の倍数バイトにするため、
 端数2バイト分0を記録してあることが分かります。

 さらに、ファイル全体が4の倍数バイトになるように、
 ファイルの最後に、2バイト分0を記録してあることも
 わかります。

いろいろ調べた結果、自分なりの解釈です。


なんか少し納得できました。
この端数が分からなくて、苦労しました。

ちなみに、横幅6pxの画像を、
今回のプログラムで実行すると

こうなります?(笑)


プログラミング技術で、この端数分を飛ばして、
読み込むプログラムを作ればいいのですが、

横幅を4の整数倍で、画像をトリミングする技術(笑)で、
対応しました。


次回は、プログラム部分の予定。










  

Posted by MEMO at 22:02Comments(0)EXCEL劇場

2011年11月04日

ビットマップ画像の仕組み

またまた備忘録となりますので、こっそりアップします。
ご興味があれば、どうぞ。

これ何だ?正解は・・・
これ何だ?の種明し
の続きです。

ここから先は、以前の記事もご覧になったほうが
何やってんの?
が伝わるかもしれません。

ビットマップ画像のフォーマット(中身を調べます)

縦8px 横8pxの小さな画像を調べてみます。
画像を読み取り、エクセルのセルで画像を再現します。
今回のプログラムを実行すると、こうなりました。

黄色い枠の中にあるのが、元画像です。(小さい)
プロパティでファイルサイズは248バイトでした。

仕組みを理解するために、画像からバイナリファイルを
1バイトづつエクセルのセルに書き出してみます。

バイナリファイルを分かりやすく、順番に区切ってみました。
画像ファイルの中身です。(画像クリックで拡大)

知りたい情報部分は黄色にしてあります。

上から
1.ヘッダ部分   ファイルサイズなど
2.情報ヘッダ   横幅 高さなど
3・画像データ領域 RGBの画像データ
となっています。
図の画像データ領域には、3バイトごとにRGBの色をつけています。


◆ヘッダ部分(14バイト)
ファイルサイズ
 (248 プロパティと同じになってます)
データオフセット
 (データ領域までのバイト数)

◆情報ヘッダ
 (40バイト)
横幅
 (画像の横幅px)
高さ
 (画像の高さpx)
ビット数
 (1ピクセルのビット数 RGBの3バイト×8)
データサイズ
 (縦8×横8×3バイト=192バイト+2バイト)

◆画像データ領域
 (左下角より右へ、以後1段づつ上がっていく
  カラーはRGBではなく、BGRの順になっている)



注意&補足
※画像は、左下から右上へ記録されているので、
 そのまま読み取ると元画像が上下逆になる。(二つ目の図の通り)

※最後の+2バイトは、ファイル全体のサイズを
 4の整数倍バイトにするための端数で、0が入っている。

※画像横幅も4の整数倍バイトに揃える必要があるらしい。
 この画像の場合、横8×3バイト=24バイトとなり、
 4で割り切れる。

元画像の横幅を4の整数倍でトリミングする理由が、
ここにある。

本来プログラミングの技術で処理する部分を、
画像を4の倍数でトリミングする技術?
で回避しました。



まとめ
ヘッダ    14バイト
情報ヘッダ  40バイト
画像データ  192バイト
       (横8×縦8×RGB3バイト)
端数     2バイト(ファイル全体を4の整数倍にする調整)
合計     248バイト
一応、ファイルサイズとピッタリ計算出来ました。


コンピューターのファイルは、0と1で記録されていることが
今回、なんとなく見えた気がしました。


これは、あくまで備忘録であり、
自分なりの解釈です。
当ブログの内容について責任は負えません。


次回もビットマップ画像について備忘録です
画像を4の倍数で、トリミングしなければならない理由を調べます。

続く
  

Posted by MEMO at 22:10Comments(0)EXCEL劇場