祝!【ホームページ基本容量拡大と増設料金値下げ】 記念企画!
gd 1.8.3 とあそぼう!
2000/11/01 より、BIGLOBE の個人ホームページの容量が増えるらしい。
BIGLOBE からのおしらせ
記念企画!として、gd の最新版をインストールすることにしましたぁ。
現時点(00/10/29) では、友人B君の協力により、www2d サーバーにインストールされて動作が確認されております。
今回の記念企画は、gd 1.8.3 ってなんだ?という解説はしない予定でありまして、
もう、gd1.8.3 といえば、何であるかをご存知の人向けであります。
(なんか色々機能が増えているようなんですが、まあ、そのうち検討する事にしましょう)
材料
例によって、とにかく動けばいいでしょ的アプローチでの試行の結果、必要なものは次の3つでした。ご用意ください。
gd1.8.3
libz
libpng
入手先は、以下の URL あたり。(ぜんぶ英語)
- gd 1.8.3
- gd-1.8.3.tar.gz
(274318 Byte)
- zlib Home Site
- zlib.tar.gz (source code)
(168463 byte)
- PNG Home Site
- libpng Home Page
- libpng-1.0.8.tar.gz
(484520 Byte)
容量が結構、必要なんですよぉ
思い起こせば、いつ頃までだったしょうか?
BIGLOBE では CGI が作ったファイルは、owner が自分ではなくて、
いくらでも容量がつかえた時代もあったのであります(^^;;;
00/10/30
容量の変更
以下のコマンドで設定を確認(telnet.cgi 経由)
/usr/ucb/quota -v
変更前
Filesystem usage quota limit timeleft files quota limit timeleft
/home4 4343 5000 5000 832 1000 1000
変更
容量変更
変更後
Filesystem usage quota limit timeleft files quota limit timeleft
/home4 4343 10000 10000 832 2000 2000
うれしい。
あ! 変更を通知するメールも到着しました。
00/11/02
libz のインストール
usr というディレクトリを作成
zlib_tar.z をアップロード (FTP)
zlib.tar.z へ rename (FTP)
>gunzip zlib.tar.gz (telnet.cgi)
zlib.tar になる。
>tar -xf zlib.tar
zlib-1.1.3 というディレクトリが作成される。
>cd zlib-1.1.3
>make test
cc -O -target sun4 -c example.c
cc -O -target sun4 -c adler32.c
cc -O -target sun4 -c compress.c
cc -O -target sun4 -c crc32.c
cc -O -target sun4 -c gzio.c
cc -O -target sun4 -c uncompr.c
cc -O -target sun4 -c deflate.c
cc -O -target sun4 -c trees.c
cc -O -target sun4 -c zutil.c
cc -O -target sun4 -c inflate.c
cc -O -target sun4 -c infblock.c
cc -O -target sun4 -c inftrees.c
cc -O -target sun4 -c infcodes.c
cc -O -target sun4 -c infutil.c
cc -O -target sun4 -c inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
cc -O -o example example.o -L. -lz
cc -O -target sun4 -c minigzip.c
cc -O -o minigzip minigzip.o -L. -lz
hello world
uncompress(): hello, hello!
gzread(): hello, hello!
gzgets() after gzseek: hello!
inflate(): hello, hello!
large_inflate(): OK
after inflateSync(): hello, hello!
inflate with dictionary: hello, hello!
*** zlib test OK ***
これで出来たはずであります。
libpng のインストール
うーん、これ、大きいのと、ややこしいので試行錯誤が多くてまとめきれない(^^;;;
とりあえずのメモ
使う makefile は
scripts/makefile.sunos
>make all
gd のインストール
うーん、これも、まとめきれない(^^;;;
とりあえずのメモ
>make gddemo
wbmp.c は、ソースの変更が必要でした。
makefile の LIBS の変更が必要
LIBS=-lgd -lpng -lz -lm
なにはともあれ...サンプルを動かしてみる。
動かしてみる
黒い四角の左上から右下へ白い線を引いているだけです。とりあえずですから (^^;;;
sample-1.c
ということで、再度、やりなおすぞぉ
うーん、3連休でやろうと思ったけど、出来ないかもしれないなぁ(^^;;;
うーん、1.8.3 のあてにならない抄訳も着手してみましたが...ああ、まだまだかかりそうです。
どうも、1.3 の抄訳の誤りも目についてしまうし(^^;;;
00/11/05
インストールの解説も、やりかけですが、
あてにならない抄訳も、ぼちぼちと、やっております。
リファレンスは、いまだに、ほとんど訳が進んでいないのですが、
それ以外の部分については、アテにならない訳が進んだので、
恥ずかしいけど、公開してしまいましょう(^^;;;
例によって、あてにならないことは、覚悟してください。
ということで、あてにならない抄訳(1.8.3)
2つくらいは、持っていたはずの英和辞典の CD-ROM が見つからず
(どうして、見つからないかを鑑みるに、
某必需品ソフトのオマケとか、
パソコンのオマケについてきた CD-ROM なので扱いが雑なんだろうなぁ...)、
仕方なく、近所のお店で一番安いのを探して買ってきました。
IBM 翻訳の王様(研究社、英和中辞典、和英中辞典付)だ。
一気に辞書を引いてくれていると思うだけなら、
翻訳機能もなかなかいいぞぉ。
単語力ないから<自分
我が貧弱な英語力ではわかりにくい部分は、
IBM 翻訳の王様といえども、わけがわからん日本語になるので、なにか納得しているのであった。
00/11/09
jpeg をインストール
png だと、やっぱり、まだやや不便。
ブラウザによっては plug-in が必要なようですし。
jpeg 機能もインストールする事にしました。
ftp://ftp.uu.net/graphics/jpeg/
jpegsrc.v6b.tar.gz (613261 byte)
これがまた、なかなか大きい。disk 容量がきついなぁ。
install.doc で install 方法を確認。
./configure
make
make test
jconfig.h は以下の変更が必要でした。
#include <stddef.h> の位置を変更。
できたようである。
再度、gd のインストール
必要な、ファイル
libpng.a, png.h, pngconf.h
libz.a, zlib.h, zconf.h
libjpeg.a, jpeglib.h, jconfig.h, jmorecfg.h, jerror.h
makefile の CFLAGS, LIBS を変更した。
CFLAGS=-O -DHAVE_JPEG
LIBS=-lgd -lpng -lz -lm
wbmp.c は、ソースの変更が必要でした。(前述と同様)
>make gddemo
できました。
動かしてみる
黒い四角の左上から右下へ白い線を引いているだけです。とりあえずですから (^^;;;
sample-1j.c
あてにならない抄訳(1.8.3) も、ちょっとだけ進みました。
00/11/11
ということで、jpeg のカウンターが動きました。(日付 時刻表示付)
内容の解説は、ただいま作業中。
00/11/12
バグもありましたが、修正しました。
上のカウンターのソースです。
jpgctr.cgi Perl
str2jpg.c C
あてにならない抄訳(1.8.3) は、けっこう進みました。
このペースだと、今回は完訳がめざせそうな気もしてきました。気力が続くか?
00/11/15
あてにならない抄訳(1.8.3) が、ささやかに進歩しました。
00/11/25
あてにならない抄訳(1.8.3) が、ささやかに進歩しました。
00/12/03
あてにならない抄訳(1.8.3) が、ささやかに進歩しました。
参考になりそうなリンク(ぜんぶ日本語)
PNG普及プロジェクト JAPAN
CGIでも使えるPNG(ぴんぐ)式画像カウンタ
gdで楽々PNG作成
GDモジュール v.1.30 [河馬屋二千年堂 Perlの小技]
Version 1.7.x の GD ライブラリで日本語を使う上での注意事項 [山賀さん@千葉大総情セ]
Ruby/GD
00/12/10
fly を改変して jpeg 版を作ってみた。
すんなり動いてしまった。
必要なファイル
fly.h
flyjpg.c (fly 改変版)
gd.h
gd_io.h
gdfontg.h
gdfontl.h
gdfontmb.h
gdfonts.h
gdfontt.h
libgd.a
libjpeg.a
libz.a
コンパイル例
gcc -o flyjpg flyjpg.c -L. -lgd -ljpeg -lz -lm
改造の要点
fly 1.6.5 の fly.c を改変し flyjpg.c を試作した。
gdImageCreateFromGif を gdImageCreateFromJpeg へ変更
gdImageGif を gdImageJpeg へ変更。引数が一つ増える点に注意! 3つめに -1 を追加
'.gif' を '.jpg' へ置換
おまけの変更点 (名前とかコメントなどなので変えなくても大丈夫だとおもうけど...)
copy_to_gif を copy_to_jpg へ変更
その他 gif の文字列を jpeg jpg などに適当に変更
fly については...
本家(英語) : http://www.unimelb.edu.au/fly/
ミラーサイト(日本語) : http://p4room.mda.or.jp/fly/ja/
01/01/26
GD.pm のインストールに着手
GD.pm 1.30
gunzip GD.pm.tar.gz
tar -xf GD.pm.tar
GD-1.30 が出来る
cd GD-1.30
Makefile.PL を調整
perl5 Makefile.PL
>perl5 Makefile.PL
NOTICE: This module requires libgd 1.8.3 or higher (shared library version 4.X).
Please choose the features that match how libgd was built:
Build JPEG support? [y] y
Build FreeType support? [y] y
Build XPM support? [y] y
If you experience compile problems, please check the @INC, @LIBPATH and @LIBS
arrays defined in Makefile.PL and manually adjust, if necessary.
Warning: -L../ changed to -L/home4/gama/public_html/cgi/gd/gdpm/GD-1.30/../
Checking if your kit is complete...
Looks good
Writing Makefile for GD
make
>make
mkdir blib
mkdir blib/lib
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/GD
mkdir blib/lib/auto
mkdir blib/lib/auto/GD
mkdir blib/man3
cp patch_gd.pl blib/lib/patch_gd.pl
cp gdtest.pl blib/lib/gdtest.pl
cp GD.pm blib/lib/GD.pm
AutoSplitting blib/lib/GD.pm (blib/lib/auto/GD)
cp qd.pl blib/lib/qd.pl
/usr/local/bin/perl5 -I/usr/local/lib/perl5/5.00503/sun4-sunos -I/usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/5.00503/ExtUtils/xsubpp -object_capi -typemap /usr/local/lib/perl5/5.00503/ExtUtils/typemap -typemap typemap GD.xs >xstmp.c && mv xstmp.c GD.c
gcc -c -I/usr/local/include -I../ -I/usr/local/include -O -DVERSION=\"1.30\" -DXS_VERSION=\"1.30\" -fpic -I/usr/local/lib/perl5/5.00503/sun4-sunos/CORE -DHAVE_JPEG -DHAVE_XPM GD.c
GD.xs: In function `XS_GD__Image_newFromXpm':
GD.xs:539: warning: assignment makes pointer from integer without a cast
Running Mkbootstrap for GD ()
chmod 644 GD.bs
LD_RUN_PATH="/home4/gama/public_html/cgi/gd/gdpm/GD-1.30/..:/lib" ld -o blib/arch/auto/GD/GD.so -assert nodefinitions -L/usr/local/lib GD.o -L/usr/local/lib -L/home4/gama/public_html/cgi/gd/gdpm/GD-1.30/.. -lgd -lpng -lz -ljpeg -lm -lX11 -lXpm
chmod 755 blib/arch/auto/GD/GD.so
cp GD.bs blib/arch/auto/GD/GD.bs
chmod 644 blib/arch/auto/GD/GD.bs
Manifying blib/man3/GD.3
試行錯誤のすえ、動いた!
例によって、まとめきれない。
必要な成果物
GD.pm
GD.so
GD.pm を lib へ(適当につくったディレクトリ)
GD.so は lib/auto/GD へ
参考 URL
GD.pm 本家(英語)
GDモジュール v.1.30 [河馬屋二千年堂 Perlの小技]
01/01/28
gd 1.8.4 にバージョンが上がっています。
以下の様になってました。
What's new in version 1.8.4?
- Add support for FreeType2 (John Ellson ellson@lucent.com)
- Add support for finding in fonts in a builtin DEFAULT_FONTPATH,
or in a path from the GDFONTPATH environment variable.
- remove some unused symbols to reduce compiler warnings
- bugfix in size comparisons in gdImageCompare
- REXX now mentioned
- All memory allocation functions are now wrapped within the
library; gdFree is exported and recommended for freeing memory
returned by the gdImage(Something)Ptr family of functions.
01/02/27
gd 2.0.0 BETA が出てました。
01/03/29
つづく
かな? 1.8.4 になったし...2.0.0 BETA も出たし。
ホームへ