SimpleAPI �λ��ȤߤˤĤ��ƹͻ����Ƥߤ�

�Ƕᵤ�ˤʤäƤ��륵���ӥ��ȸ����С�����ͭ̾�ˤʤä���SimpleAPI ����1.�����֥����ȥ���ͥ������API �����פäƤ��������ӥ������Σ��äƽ񤤤Ƥ��뤯�餤�����顢��Ԥ����Ϥ��Σ������Σ���Ͱ���Ȼפ���櫓�Ǥ����������ȤΥ���ͥ������������äƤΤϤ��������ʤȤ��������Ω�������ʵ������ޤ���

�ǡ��Ǥ���м��Ҥ�Ʊ���褦�ʻ��Ȥߤ��äƼ��ҤDz�褷�����Ȼפ��Ƥ�������¿������ΤǤϡ��Ȼפ��ޤ�����Ū�ˤϲ�ҤλŻ����餹��в����Ϣ�Τʤ�������Υ����ӥ��Ǥ������Ŀ�Ū�ˤ����˶�̣���������륵���ӥ��ʤΤǡ����λ��ȤߤˤĤ��ƹͻ����Ƥߤޤ���������ʹͻ��ʤΤǡ������㤦��ǽ���⤢��Τǡ��������餺��������

- ���ݥ󥵡���� -

�ɤ���äƥ����ȤΥ���ͥ�����������Ƥ���Τ���

�����ǰ��֤���֥饦������������魯��ץ������äƤΤϺ��ˤ��ߵ郎�⤹�����ľ�����ä� CSS �� JavaScript �ε�ư�����魯��ΤϤ��ʤꥷ��ɥ��Ϥ����Ȥ���С�����Ū�ˤϥ֥饦����ư�����Ƥ���Ϥ��������Ф϶��餯 Linux �Ȼפ���Τǡ� mizilla �� FireFox �� Opera ��ư�����Ƥ���Ȼפ��ޤ���

�Ȥ���ȡ��֥饦����ư����Ķ���ɬ�פʤϤ���X ��ư���ƽ����򤷤Ƥ���Ϥ����ʤ����Ȥ���ʤ�С�

����Xvfb - ���ۥե졼��Хåե��äƤΤ�Ȥä� X �β��۴Ķ���Ĥ��äơ������ǥ֥饦����ư���롣

����ǡ����ۥե졼��Хåե���ǥ֥饦����ư��������ӻ��ꤹ��գң̤����褹��äƤ��Ȥ��Ǥ���褦�ˤʤ�Τǡ�����򥭥�ץ��㤷�ƽ̾����뵡ǽ������Ф褤��

����Image::Magick ��ȤäƲ��ۥե졼��Хåե��򥭥�ץ��㤷�ƽ̾�����

�����餯������Ϥ��Σ����Ȼפ��ޤ������ Perl �Ǽ�������ʤ顢Perl::Magick �Ĥ��ä� �������Խ��Ȥ����ƥ���ͥ����������ơ�����å�������Ȥ������Ȥ�봶�����ʤ����Ⱦ�������������ĤΥ����ӥ��Ȥ��Ʒ�������ΤϷ빽���������Ż��Ȼפ��ޤ�����


�ǡ���˼¸����Ƥߤޤ���

Xvfb - ���ۥե졼��Хåե��Υ��󥹥ȡ���

OS �ˤ�ä�¿��̾�Τ��ۤʤ�ޤ�����XFree86-Xvfb �⤷���ϡ�xorg-x11-Xvfb �äƥѥå������򥤥󥹥ȡ��뤷�ޤ����ͤδĶ��� CentOS 4.2 �� yum �Ĥ��äƥѥå������������Ƥ���ΤǤ���ʴ����ǡ�Xvfb �����󥹥ȡ���Ѥߤʤ餳�����ɤ����Ф��ƣϣˡ�
yum grouplist
yum groupinfo "X Window System"
yum upgrade xorg-x11-xfs
yum upgrade xorg-x11
yum upgrade xorg-x11-devel
yum upgrade xorg-x11-libs
yum groupupdate "X Window System"
yum upgrade xorg-x11-libs
yum install xorg-x11-Xvfb
yum install firefox

����ǡ����̤�ѥå������ΰ�¸�ط����ä��Ĥ� Xvfb �δĶ��������Ϥ�����äѡ�OS ���󥹥ȡ�����ˤϥե륤�󥹥ȡ��뤷�Ƥ����Τ��������⡣�֥饦���ϤȤꤢ���� FireFox ����ѡ�JavaScript ��Ϣ�Ȥ��ޥȥ��ɽ���Ǥ����ǡ�

�Ĥ��ˡ�FireFox �Υץ��ե���������ꡣ

firefox -createprofile webshot
mkdir /tmp/webshot/

�Ĥ��ˡ�Xvfb ��ư���� init �ե�����κ�����

echo '#!/bin/bash
#
# chkconfig: - 91 35
# description: Starts and stops XVfb. \
#              used to provide virtual frame buffer.

# Source function library.
. /etc/init.d/functions

prog=$"Xvfb"

# Xvfb program
XVFB=/usr/X11R6/bin/Xvfb

start() {
    echo -n $"Starting $prog: "
    daemon /usr/X11R6/bin/Xvfb :1 -screen 0 1024x1024x24 &
    echo
}

stop() {
    echo -n $"Shutting down $prog: "
    killproc Xvfb
    echo
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|reload)
        stop
        start
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0
' > /etc/init.d/xvfb
chmod 755 /etc/init.d/xvfb
chkconfig xvfb on

����ǡ����ۥե졼��Хåե��ȥ֥饦���δĶ������������ʤߤˡ���ư�λ����ϲ������̤ꡣ

export DISPLAY=:1.0
firefox -display :1 -width 800 -height 1024 -P "webshot" &
firefox -display :1 -remote "openurl(http://www.drk7.jp/)"

����ǡ����� X ��� http://www.drk7.jp/ ��ɽ�椷�Ƥ���Ϥ����������ʤߤˡ�DISPLAY �Ķ��ѿ�������� VNC �Ȥ��ȤäƤ��Ǥ� ���� �����ѺѤߤʤ�Ŭ���� ���� �Ȥ��ǡ�

���ޥ�ɥ饤��١����ǥ���ͥ�����������륹����ץȤμ¸�

��ꤢ���������ޥ�ɥ饤��١�����ư����ġ��ʤ�ǥ��ޥ�ɥ饤��١������ϲ������ǡ�
#!/usr/bin/perl -w
use Image::Magick;

$ENV{DISPLAY} = ':1.0';
my $url = $ARGV[0] or die 'need url args..';
my $img_fname = 'sample.png';
my $thumb_fname = 'sample_thumb.png';

`firefox -display :1 -remote "openurl($url)"`;
`import -display :1 -window root -silent $img_fname`;

$img=Image::Magick->new;
$img->Read($img_fname);
$img->Crop('768x768+0+90');
$img->Set(quality=>90); 
$img->Scale( width=>128, height=>128 );
$img->Write($thumb_fname);

Ŭ���� test.pl �ȤǤ���¸���롣��ư�λ����ϰʲ����̤ꡣŬ���� URL ��������Ϥ���

perl test.pl http://www.yahoo.co.jp/

�Ȥ����С�sample_thumb.png �äƤ�������ͥ��뤬�����Ǥ��Ƥ���Ϥ�������� CGI ��ͳ��ư����褦�Ȥ���ȡ����Τ���fork ���� Firefox ��¹Ԥ�����ʬ�� Segmentation fault �����ࡦ����

/usr/lib64/firefox-1.0.7/run-mozilla.sh: line 159: 16542 Segmentation fault "$prog" ${1+"$@"}

���Ȱ��⤬�¤��񤷤������������Ϥ����ޤǡ����äƤ���ɬ�פʤ� SimpleAPI �Ȥ��Ф��ä����ɤ��Ǥ��Ƥ뤷������ˤ��Ƥ���� Xvfb �ʤ�Ƥ�Τ��Τ�ޤ�����Linux ƻ����������������

- ���ݥ󥵡���� -

��Ϣ���뵭�������ݥ󥵡����