2006 年 3 月

2006 年 3 月に書いた日記。31 項目あります。

日記の概要

shebang の解析と実行
shebang の行かどうかは、先頭が#! で開始しているかどうかを調べればいい。if "%SHEBANG:~0,2%" == "#!" echo SHEBANG!ただ、 …… (31日 21:41)
文字列の操作
さて、昨日は読み込んだ行を出力しただけだったが、shebang を調べるためには、行の内容を解析する必要がある。しかし、コマンド …… (30日 23:58)
ファイルの先頭行を読み出す
今日は、ファイルの先頭行を読み出してみよう。Windows 環境には、ファイルの部分行を得るコマンドがない。Linux などでは、head …… (29日 21:50)
括弧と組み合わせる
括弧がより効果を発揮するのは、if などを組み合わせた場合だ。if は、条件式の後にコマンドを取るが、そこに括弧コマンドを使 …… (28日 22:30)
「括弧」コマンド
括弧には、コマンド終端を明確にする役割以外に、複数のコマンドをまとめる役割もある。開き括弧はコマンドの一種であり、コマン …… (27日 19:18)
if コマンド
今日は if コマンド。プログラミングの経験者は、コマンドの名前だけでこのコマンドの役割は分かると思う。if コマンドは条件に・ …… (26日 22:54)
特殊変数と変数
バッチファイルのコマンド引数や、for 文に渡される変数は、% の後に 1 文字続く形である。これらの変数は特殊変数と呼ばれる。 …… (25日 16:22)
for コマンド(続き)
今日は、for コマンドの /f スイッチをやろう。/f スイッチは非常に特殊で、テキストファイルの内容や文字列、そしてコマンドの …… (24日 23:25)
for コマンド
cmd には、for というコマンドがある。for は、ディレクトリ内にあるファイルに対して繰り返しを行うコマンドだ。cmd で試してみ …… (23日 23:40)
バッチファイル
Shebang を処理するためには、どこかのプログラムがまずはスクリプトを開き、一行目を読んで処理系のパスを調べ、そのパスにスク …… (22日 23:38)
Windows + Shebang
Windows で Perl などの CGI のテストをする際、本番環境は Unix 系なのでその差で困ることがある。その中で、特に欲しいのが S …… (21日 22:25)
まとめて実装
さて、今までの考察を盛り込み、細かい問題点を整理していき、モジュールとしてまとめてみよう。========== EncoderHandle.pm == …… (20日 23:43)
インタフェースの統一
Encode, Jcode, jcode.pl はそれぞれ呼び出し規則が異なる。今日はそれを吸収する仕組みを作ろう。クラスレベルでインタフェース …… (19日 23:58)
モジュールによる分岐
さて、モジュールのフォールバックは実装できた。では、肝心な変換部分をどのように呼び出すか。まず考えられるのが、読み込まれ …… (18日 23:59)
モジュールのフォールバック
昨日は、Encode モジュールがあることが前提だった。そのため、Encpde がない環境で走らせると、Can't locate Encode.pm in @I …… (17日 23:58)
ファイルハンドルへの組み込み
文字コード変換をファイルハンドルに組み込んでみよう。ファイルハンドルクラスには、変換を行いながら出力を行うことになるので …… (16日 23:52)
文字コードの変換
では、文字コードの変換をしてみよう。まずは、jcode.pl から。これはモジュールではないため、懐かしい require 文で取り込む …… (15日 20:41)
文字コード関係のモジュール
ハンドルを乗っ取る方法はわかった。では、文字コードの変換を考えてみよう。(文字集合の符号化方式の変換)を考えてみよう。日 …… (14日 23:56)
tie の実験
今日は実験をしてみよう。ファイルハンドルの tie には、Tie::Handle という既定の実装が存在する。この実装は、PRINT, PRINTF …… (13日 23:58)
ファイルハンドルの tie
Perl 5.8 系の IO レイヤは、ファイルハンドルの奥底で秘密裏に処理を行う。5.6 系で同様のことをするためには、ファイルハンド …… (12日 21:48)
IO レイヤに代わるもの
Perl 5.8 では、以下のように指定すると、出力時に、内部表現から shift_jis に変換してくれる。binmode STDOUT, ":encoding(s …… (11日 23:59)
枯れたサーバ
今日は久々に社用 Web のスクリプトの修正を行った。っていっても、ホスティングだけど。普段は手元の環境で開発してるので、Pe …… (10日 23:07)
背景色への最適化
さて、いよいよ大詰めだ。今日で最後となる。今日は、画像のサイズをうまく調整し、背景との間のぎざぎざを取り払って完成させよ …… (9日 23:56)
線形補間による回転
今日は、線形補間を適用してみよう。基本は、拡大縮小の時と同じだ。新しいピクセルから元のピクセルを参照する際の計算式を回転 …… (8日 22:17)
中心を基準に回転
昨日の回転では、回転の基準が左上となっていた。なので、180 度とか回転すると、画面の外にいってしまう。また、画面内に見えた …… (7日 23:35)
任意角度の回転
今日は、任意角度の回転を考える。回転後と回転前のピクセルが、どのような位置関係か考えてみよう。細かい説明をするとややこし …… (6日 23:57)
画像の回転
補間できる対象は、画像のサイズ変更だけではない。回転などもその代表例だ。回転は縦横の座標の計算が絡むので、意外にややこし …… (5日 23:30)
線形補間法の特徴
線形補間法の特徴は、近傍法とは対照的である。周辺の色によって中間色を計算するため、アンチエイリアス処理により、そこそこ良 …… (4日 23:25)
線形補間法による実装
さて、今日は昨日紹介したアルゴリズムである、線形補間法をコードで実装してみよう。ピクセルを領域として考えないと、画像の端 …… (3日 23:27)
線形補間法
今日紹介するのは線形補間法だ。線形補間法はバイリニア法よも呼ばれ、存在しない点を、周辺のピクセルの色を使って算出する方法 …… (2日 23:17)
近傍法の問題
近傍法は、拡大にも縮小にも適用できる。また、元の画像に含まれている色を必ず使用するので、カラーテーブルを持つ画像にも適応 …… (1日 23:14)


Copyright (c) 1994-2007 Project Loafer. All rights reserved.