GIFで遊んでみました
思いつきで、任意の色のGIFアイコンを作るPHPスクリプトを作ってみました。 GDやGIFのライブラリがサーバ機能として用意できない時などに使えるかも知れません。 でも、恐らくあまり実用性は無いと思います。 まあ、お遊びということで。。。
スクリプトを作った方法は、かなりAd-hocで無理矢理です。 GIFはインデックスカラー方式なので、カラーマップのRGBを置き換えるプログラムを書いてみました。 絵が同じで色だけが違う2種類のGIF画像を用意して、「od -t x1 filename.gif」をそれぞれに対して行い、色の部分を割り出して、RGBの値を変更できるようにしました。 本来ならばGIFのフォーマットを良く見ながら全部作るべきですが、面倒だったのでかなり手抜きをしてみました。
で、作ったのが以下のプログラムです。 色を0〜255の数値で指定して「OK」を押すとアイコン画像が任意の色に変更されます。 面倒だったので背景色は白固定です。 カラーマップの背景色部分を変更するようにプログラムを改変すれば任意の背景色を出すようにできます。
ソースコードです。 3分コーディング物なので品質は低いです(言い訳)。 必要に応じて改変してください。
<?php
$r = $_GET["r"];
$g = $_GET["g"];
$b = $_GET["b"];
if (!is_int($r) || !is_int($g) || !is_int($b)) {
header("500 Server Error");
}
if ($r < 0 || $g < 0 || $b < 0 ||
$r > 255 || $g > 255 || $b > 255) {
header("500 Server Error");
}
header("Content-Type: Image/Gif");
$gifdata = pack("C*",
0x47 , 0x49 , 0x46 ,
0x38 , 0x37 , 0x61 ,
0x0f , 0x00 ,
0x0f , 0x00 ,
0x80 , 0x01 , 0x00 ,
$r, $g, $b,
0xff , 0xff , 0xff ,
0x2c , 0x00 , 0x00 , 0x00 , 0x00 , 0x0f , 0x00 , 0x0f ,
0x00 , 0x00 , 0x02 , 0x1d , 0x84 , 0x1d , 0xa9 , 0x7b ,
0xb8 , 0xdf , 0xc0 , 0x83 , 0x6d , 0xb2 , 0x6a , 0x6d ,
0xcc , 0x69 , 0x73 , 0x9f , 0x81 , 0x1a , 0xa6 , 0x88 ,
0x93 , 0x49 , 0x1d , 0x5c , 0x80 , 0x5e , 0x2a , 0x57 ,
0x00 , 0x00 , 0x3b
);
print $gifdata;
?>
参考
もう少し真面目に作りたい方は、「GIFフォーマットの詳細」などがお勧めです。
最近のエントリ
- 「ピアリング戦記」の英訳版EPUBを無料配布します!
- IPv4アドレス移転の売買価格推移および移転組織ランキング100
- 例示用IPv6アドレス 3fff::/20 が新たに追加
- ShowNet 2024のL2L3
- ShowNet 2024 ローカル5G
- ShowNetのローカル5G企画(2022年、2023年)
過去記事