2010-12-21

PerlのImage::Magick

画像合成をする場合に使うライブラリのさんぷるクリプト

ImageMagick

さんぷるクリプト



#!/usr/bin/perl

use strict;
use warnings;

use Image::Magick;

my $dir = 'images';
my $width = 192;
my $height= 53;

my $i3 = Image::Magick->new(width=>$width, height=>$height, magick=>'GIF');
$i3->Read("$dir/layer3.gif");

my $i2 = Image::Magick->new(width=>$width, height=>$height, magick=>'GIF');
$i2->Read("$dir/layer2.gif");
$i3->Composite(image=>$i2, compose=>'Over', x=>0, y=>0);

my $i1 = Image::Magick->new(width=>$width, height=>$height, magick=>'GIF');
$i1->Read("$dir/layer1.gif");
$i3->Composite(image=>$i1, compose=>'Over', x=>0, y=>0);

$i3->Write("$dir/mix_i.gif");

#binmode STDOUT;
#$i3->Write('gif:-');

exit;

PerlのGD

画像合成をする場合に使うライブラリのさんぷるクリプト

GD

さんぷるクリプト



#!/usr/bin/perl

use strict;
use warnings;

use GD;

my $dir = 'images';
my $width = 192;
my $height= 53;

my $image = new GD::Image($width, $height);

my $i3 = new GD::Image("$dir/layer3.gif");
$image->copy($i3, 0, 0, 0, 0, $width, $height);

my $i2 = new GD::Image("$dir/layer2.gif");
my $i1 = new GD::Image("$dir/layer1.gif");
$i2->copy($i1, 0, 0, 0, 0, $width, $height);
$image->copy($i2, 0, 0, 0, 0, $width, $height);

open(OUT, ">$dir/mix.gif");
binmode OUT;
print OUT $image->gif;
close(OUT);

exit;

2010-12-20

CのApache-module::基本GETパラメータ

apacheモジュールでGETパラメータを受け取る方法。
GETとPOSTでは処理が違うのがミソですね。。POST難しい。。。

GETパラメータはrequest_rec構造体のメンバであるargsに文字列として渡されます。
1個しかないと分かっていれば簡単ですけど、つらつらと渡されることもあるので、複数のパラメータがあると想定します。

方法はループ処理で取得するのでお好みなのを使えばいいと思うのですが、とりあえず2個のサンプルを書いてみました。

for 文を使う

do ... while 文を使う


個々のパラメータ処理


keyとvalをハッシュに格納します。
また、同一keyで異なるパラメータが送られてきても受け取れるようにvalは配列にします。

○確認方法
curllが入っていれば簡単。 複数パラメータは、 --- でくくらないと切れてしまいますー。

Telnetの場合はこんなん ○関数メモ

2010-12-16

CのApache-module::基本

apacheモジュールの超基本形。スタティックページならこんなんでOK.
ついでにapacheの設定も書いておきましょ。。

httpd.confに書くこと

2010-12-01

PerlのImage::Imlib2

画像合成をする場合に使うライブラリのさんぷるクリプト

Imlib2:インストール方法は簡単なyum使ってるのでまぁ・・・参考程度で。

  1. 取り合えずgifが作られればいいので、必要だというlibgifとlibungifを入れる。
    libungifにlibgifも入っているらしいので、libungifを入れる。

  2. 本体入れる

  3. Perlモジュール入れる

  4. 使う

さんぷるクリプト



#!/usr/bin/perl

use strict;
use warnings;

use Image::Imlib2;

my $dir = 'images';

my $image = Image::Imlib2->load("$dir/layer3.gif");

my $i2 = Image::Imlib2->load("$dir/layer2.gif");
$image->blend($i2, 0, 0, 0, $image->width, $image->height, 0, 0, $image->width, $image->height);

my $i1 = Image::Imlib2->load("$dir/layer1.gif");
$image->blend($i1, 0, 0, 0, $image->width, $image->height, 0, 0, $image->width, $image->height);

$image->set_quality(100);
$image->image_set_format('png');
$image->save("$dir/mix.png");

exit;