クイズです。
突然ですが、クイズです。
![]() |
左の画像のreturnの次(モザイクの部分)に入る言葉は何でしょうか? 答えは2つ。 もちろんエラーが出ずに、何らかの画像が表示されることが条件です。 |
これがわかる人は、これ以降の数ページを読む必要はないかもしれません。
わからない人は、とりあえずこのページを読み進めてみてください。たぶんわかるようになると思います。
あとで答えが出てきますが、いきなり答えだけ読んでもわからないと思います。
あせらず、順番に行きましょう。
わからない人は、とりあえずこのページを読み進めてみてください。たぶんわかるようになると思います。
あとで答えが出てきますが、いきなり答えだけ読んでもわからないと思います。
あせらず、順番に行きましょう。
カラーバーで遊ぼう
ここでは、カラーバーを使いながら、もう少しスクリプトの基本を勉強したいと思います。
カラーバーは、深夜、テレビ放送が終了した後などに出る赤とか黄色とかの棒(バー)を組み合わせたようなやつのことです。
・・・って、説明が下手ですみません(^^;
カラーバーは、深夜、テレビ放送が終了した後などに出る赤とか黄色とかの棒(バー)を組み合わせたようなやつのことです。
・・・って、説明が下手ですみません(^^;
![]() |
要するに、こういう画像(正確には信号)のことです。 テレビモニタの画質を調整するために使われるものなのですが、ここでは色調補正の話をしようというわけではありません。ていうか、私にはそんな能力はありません(^^; AviSynthにはカラーバーを擬似的に作り出すフィルタが内蔵されていますので、それを使ってちょっと遊んでみようというわけです。 |
ColorBars()
フィルタの名前はColorBarsです。
そのまんまですね。
では、スクリプトを書いてみましょう。
そのまんまですね。
では、スクリプトを書いてみましょう。
![]() |
新しくメモ帳に書いてもいいのですが、ここではtest.avsを書き換えることにします。 test.avsをVirtualDubModで開いて、[Tools]->[Script editor...]からスクリプト・エディタを起動します。 Versionフィルタと同じようにColorBars()と書いて、[F5]で更新っと・・・。 |
![]() |
ガ━━(゜Д゜;)━━━ン!!!!! エラーが出てしまいましたが、ここは焦らずにエラーメッセージを見てみることにしましょう。 「Invalid arguements...」はカッコの中身が間違っていたときに出るエラーでしたね。 やはりマニュアルはちゃんと読まないとダメなようです。 |
マニュアルを読もう
ColorBars ColorBars(int width, int height) The ColorBars filter produces a video clip containing SMPTE color bars scaled to any image size. The clip produced is RGB, 29.97 fps, 1 hour long. A test tone is also generated. Test tone is a 440Hz sine at 48KHz, 16 bit, stereo. The tone pulses in the RIGHT speaker, being turned on and off once every second. |
AviSynth2.5.2のマニュアルからの引用です(※一部、文字を斜体に変更してあります)。
AviSynthのマニュアルはこちらから、AviSynth.orgのマニュアルはこちらから見ることができます。ただしAviSynth.orgの書式はちょっと間違っているような気がしますので、AviSynthのマニュアルを見てください。
カッコの中の「int width, int height」が気になりますね。
widthは幅、heightは高さの意味であることはわかるかもしれませんが、ではintは何を表しているのでしょうか?
とりあえずVersionフィルタのときと同じように訳してみましょう。
AviSynthのマニュアルはこちらから、AviSynth.orgのマニュアルはこちらから見ることができます。ただしAviSynth.orgの書式はちょっと間違っているような気がしますので、AviSynthのマニュアルを見てください。
カッコの中の「int width, int height」が気になりますね。
widthは幅、heightは高さの意味であることはわかるかもしれませんが、ではintは何を表しているのでしょうか?
とりあえずVersionフィルタのときと同じように訳してみましょう。
ColorBars ColorBars(int width, int height) ColorBarsフィルタはどのような画像サイズにも変更できるSMPTEカラーバーを含むビデオクリップを生成します。このフィルタによって作られるクリップは、RGB、29.97fps、長さ1時間になります。 試験音声も同時に作り出されます。試験音声は440Hzの正弦波で48KHz、16ビット、ステレオです。音声は右のスピーカーで振動し、一秒ごとにオン・オフを繰り返します。 |
正弦波(サイン波とも言う)は、簡単に言うと時報の「ピ・ピ・ピ・ピー」と同じものらしいです。詳しいことは私もわからないので、興味のある人はこちらのページあたりを読んでみてください。
ともあれ、ColorBarsがどのようなフィルタなのかは、おおよそ理解することができました。
よく見てください。「どのような画像サイズにも変更できる」とあります。
ということは、どこかで画像サイズを指定する必要がありますね。
ハイ、それが「int width, int height」です。
論より証拠。試しにやってみましょう。
ともあれ、ColorBarsがどのようなフィルタなのかは、おおよそ理解することができました。
よく見てください。「どのような画像サイズにも変更できる」とあります。
ということは、どこかで画像サイズを指定する必要がありますね。
ハイ、それが「int width, int height」です。
論より証拠。試しにやってみましょう。
intの謎
![]() |
幅(横解像度)が640、高さ(縦解像度)が480のカラーバーを作ってみましょう。 画像の大きさを表すには、普通、数字を使いますから、widthに640、heightに480と入力してみます。 そして、[F5]で更新っと。 |
![](img/script/colorbars640x480s.png)
カラーバー キタ━━━━━━(゜∀゜)━━━━━━ !!!!!
![]() |
ではwidthを320に、heightを240に変更してみましょう。 [F5]で更新。 |
![](img/script/colorbars320x240s.png)
うまく行きましたね。よかった、よかった。
えっ?
「intの意味は何?」
「ColorBars(int 320, int 240)って書かなくていいの?」
す、するどいですね。
では次回、いよいよ引数と書式について解説したいと思います。
クイズの答えは次の次くらいになると思います(^^;
補足、あるいは蛇足
![]() |
さきほどの画像です。 よく見ると、「320,」と「240」の間に半角スペースが空いています。 よくこういう書き方をします。 こういう風に書く本当の理由は知りません(^^; 私がこういう書き方をするのは、詰めて書くと境目がわかりにくいし、この方が何となく見栄えがいいからです。 |
ちなみに、
![](img/script/colorbars4.png)
半角スペース10個分まで試してみましたが、カラーバーは問題なく表示されました。
それ以上は試してないのでわかりません。
![](img/script/colorbars4.png)
半角スペース10個分まで試してみましたが、カラーバーは問題なく表示されました。
それ以上は試してないのでわかりません。
![]() |
ただし、数字の間に半角スペースを入れたり、全角スペースだとダメでした。 当たり前っちゃ当たり前なんでしょうけど。 |
前のページ | 次のページ |