Image::Magick::Thumbnail::Simple 0.12 原文

「翻訳」ではなく「原文」なのは、私が作ったモジュールだからです。
Image::Magick::Thumbnail::Simpleモジュールのバージョンは0.12です。

目次

名前

Image::Magick::Thumbnail::Simpleサムネイル画像を無駄なく簡単に作ります

構文

ファイルに出力

use Image::Magick::Thumbnail::Simple;
my $t = new Image::Magick::Thumbnail::Simple;
$t -> thumbnail(
  input  => 'input.jpg',
  output => 'output.jpg',
  size   => 128,
) or die $t -> error;

標準出力に出力

use Image::Magick::Thumbnail::Simple;
my $t = new Image::Magick::Thumbnail::Simple;
binmode STDOUT;
print "Content-type: image/jpegnn";
$t -> thumbnail(
  input  => 'input.jpg',
  output => 'jpg:-',
  size   => 128,
) or die $t -> error;

初期化のときに指定する場合

別に指定しないかぎり、以降全てに継承されます。


$t = new Image::Magick::Thumbnail::Simple(
  size    => 128,
  blur    => 0.8,
  quality => 80,
);

変更する場合

$t -> size( 128 );
$t -> blur( 0.8 );
$t -> quality( 80 );

個別に指定する場合

入力と出力は、個別にしか指定できません。


$t -> thumbnail(
  input   => 'input,jpg',
  output  => 'output.jpg',
  size    => 128,
  blur    => 0.8,
  quality => 80,
);

サムネイル画像の横幅

$width = $t -> width;

サムネイル画像の縦幅

$height = $t -> height;

説明

Image::Magickを使って、簡単にサムネイル画像を作成できます。
基本的な設定はImage::Magickと同じです。画像のリサイズの処理のみを扱います。
公開したバージョンは0.10です。
0.12では、説明の修正と、サムネイルのサイズを返すようになりました。

参照

Image::Magick

作者

Satoshi Ishikawa <cpan@penlabo.net>

Copyright (C) 2008 Satoshi Ishikawa

このライブラリはフリーソフトウェアです。
Perl自体と同じ条件で再配付、または変更することができます。
利用可能なPerlのバージョンは5.8.8、またはこれ以降のバージョンです。

更新履歴

2008-04-03
公開

XML::Simple(PerlでXMLをパースする)

Ajaxへの熱が冷めはじめた昨今、しかしXMLファイルを扱う機会はあまり減りません。
使用したXML::Simpleモジュールのバージョンは2.18でした。
Perlのバージョンが5.8であれば、インストールされています。

使い方

my $xml = <<'XML';
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
  <url>http://127.0.0.1/</url>
  <title>localhost</title>
  <copyright>Administrator</copyright>
</urlset>
XML
use XML::Simple;
my $xs = new XML::Simple();
my $parser = $xs -> XMLin( $xml );
my %parse = (
  'uri'       => $parser -> {'uri'},
  'title'     => $parser -> {'title'},
  'copyright' => $parser -> {'copyright'},
);
use utf8;
foreach my $key ( keys %parse ){
  utf8::encode( $parse{$key} );
  printf( "%s : %s\n", $key, $parse{$key} );
}

不具合

エンコードが正しく指定されていても、UTF-8以外であれば受け付けてくれません。

おわりに

結果の文字列にBOMを付けるという余計な事をするため、
utf8::encodeでBOMを除去する処理が必要になってしまいます。
スイッチをつけるなどして、選べるようにしてほしい。

更新履歴

2008-04-04
サイト移動に伴うHTMLの修正(旧URI:[廃止])
2008-01-07
公開

LWP::Simple(PerlでWeb上のリソースを取得する)

お手軽に、Web上のリソースを取得しましょう。
使用したLWP::Simpleモジュールのバージョンは1.41でした。
Perlのバージョンが5.8であれば、インストールされています。

使い方

use LWP::Simple;
my $html = get( 'http://127.0.0.1/' );
print $html;

不具合

HTTPレスポンスコードが200以外の場合、プロセスが死ぬので注意。

PHPの場合

とってもお手軽な標準関数が用意されています。

$html = file_get_contents( 'http://127.0.0.1/' );
echo $html;

おわりに

レスポンスコードを返してくれても良いような気がします。

更新履歴

2008-04-04
サイト移動に伴うHTMLの修正(旧URI:[廃止])
2008-01-07
公開

HTML::HeadParser(PerlでHTMLヘッダをパースする)

Webサイトのmetaタグを解析する必要が増えてきました。
いままでは、パターンマッチで一つずつ取り出していました。
モジュールが用意されているので、使ってみましょう。
使用したHTML::HeadParserモジュールのバージョンは2.22でした。
Perlのバージョンが5.8であれば、インストールされています。

使い方

use LWP::Simple;
my $html = get( 'http://127.0.0.1/' );
use HTML::HeadParser;
my $p = new HTML::HeadParser;
$p -> parse( $html );
my %parse = (
  'title'       => $p -> header( 'title'              ),
  'charset'     => $p -> header( 'content-type'       ),
  'copyright'   => $p -> header( 'x-meta-copyright'   ),
  'keywords'    => $p -> header( 'x-meta-keywords'    ),
  'description' => $p -> header( 'x-meta-description' ),
);
foreach my $key ( keys %parse ){
  printf( "%s : %s\n", $key, $parse{$key} );
}

不具合

XHTMLのソースを渡すとエラーでプロセスが落ちてしまうので、
HEADタグの中身のみを渡した方がいいでしょう。

おわりに

x-metaという使い方には、いまだに慣れません。
XHTMLに対応して、URIを直接指定したいですね。

更新履歴

2008-04-04
サイト移動に伴うHTMLの修正(旧URI:[廃止])

2008-01-07
公開

おさわがせしました

正直なところ、機能の追加に追加で、1つ弄ると別のところに影響が出てしまうようです。
また、こちらの想定外の使い方をしていることもあるみたいで、バグと思って昨日を正常化しても、それが逆に改悪となってしまうようです。

クッキーによる設定の変更なども、いろいろ問題が発生してしまっているようでうまくいきません。
手元には、細かな修正と機能追加の行われたスクリプトがあるものの、使えない機能が出るようなので(こちらでは確認できなかったのですが)、不本意ではありますが、巻き戻しいたしました。
もっと機能を追加したいのですが、1つのスクリプトで改修するには限界と考えます。

また、いい方法が見つかったときには、手を加えたいと思いますが、
いまはこれが精一杯です。
すいませんでした。

しっかりしろAmazon

先日、ネトゲアンテナのシステムメンテナンスを行っていました。
Amazonのアソシエイトをどうしようかとページをめくっていると・・・

いつのまにか、イメージのみで個別商品リンクが張れるようになっているではないか。
ふむふむ、タグはAタグで張れ、DOCTYPEにやさしい。画像は持ち帰ってくださいと。
これは使うしかないだろと、商品をちゃんと把握しているパンヤから修正を書けることにした。

ちょっと用事があってパソコンから離れて、Amazonに再ログインすると・・・
あれ?イメージのみがない?さっきのは幻?
いやいや、リンクは生きてるし間違いない。

自分の操作に問題があったのか、としばらく悩んでいたけれど、時間の無駄なのでAmazonに問い合わせることにした。
----------
Amazon.co.jpアソシエイト・プログラムにお問い合わせいただき、ありがとうござ
います。

誠に申し訳ございませんが、一時的に個別商品リンクの作成画面にて、掲載すべき予
定ではない機能が掲載されておりました。この表示についてはすでに削除されており
ます。このたびは、誤った機能を表示しており、大変ご迷惑をおかけいたしましたこ
とを、お詫びいたします。

その他にもご不明な点がございましたら、ご遠慮なくお問い合わせください。アソシ
エイト・プログラムをご利用いただき、ありがとうございます。
----------
な、なんだってー(AAry

どうしてくれるんだよ、イメージのみ専用にスクリプト修正し終わってるんですがorz

ブログパーツこっそりテスト

rank表記がほしいということで、昨日こっそり追加してみた。
ラウンジで報告していないにもかかわらず、要望をもらった。

ぁあ、ちゃんと見てるんだなぁ、と。
作った意味はあったなぁ、と。
応えなきゃなぁ、と。


桂小枝風に読まないこと。

てなわけで、またちょっと弄ってみました。
評価よろしく~

WCG ← ブログパーツのお知らせ

メンバー(個人)向けのブログパーツをちょっと前に作りました。
ここで公開

明日からの3連休で、もう一度調整します。

※改修予定項目
 → スタイルシートの整理
 → 利用者同士の交流を助ける、ウェブリング機能の実装

ちなみに、ブログじゃなくても、タグを貼り付ければ動きますよ。

GIMPでWeb素材を作ろう

完成画像

背景やボタンとしても使えそうで、今風(?)なWeb素材を作ってみましょう。
このような画像が作れるようになります。
文字を重ねると、ボタンらしくなりますね。
この解説で使用したバージョンは、2.2.4です。

実際に作ってみる

それでは、手順を追って作ってみましょう。

  1. 新規画像を作成します。
    手順1-1
    とりあえず、200×40というサイズで作ることにします。
    細かなサイズ指定は、慣れれば各自が判断できるでしょう。
    手順1-2
    問題なく作成されれば、こういうウィンドウが出現します。
  2. 基本とする色を塗ります。
    手順2
    ここでは、お気に入りの色である緑色を使いましたが、どのような色でもかまわないでしょう。
    ただし、濃い目のほうがいいかもしれません。
  3. グラデーションを塗るための準備をします。
    画像を全選択してください。
    手順3-1
    そして、選択領域の縮小で2px縮めます。
    手順3-2
    次に、角を丸めます。
    ここでは、半径を「50%」という設定で丸めます。
    好みで変更してもかまわないでしょう。
    手順3-3
    ここまで問題がなければ、このような状態になります。
  4. シャドウとなるグラデーションを塗ります。
    2枚目のレイヤーを作成します。
    手順4-1
    最上部になるように配置してください。
    手順4-2
    新規レイヤーへグラデーションで塗ります。
    「前景から透明に」を選択します。
    形状は「Linear」反復は「なし」です。
    手順4-3
    下から中間までを選択し、グラデーションで塗ります。
    ここまで問題がなければ、このような状態になります。
  5. ハイライトとなるグラデーションを塗ります。
    手順5-1
    減算選択で半分にします。
    手順5-2
    再び角を丸めます。
    半径を「100%」という設定で丸めます。
    もし、膨らむようなら設定値を「90%」などに減らします。
    手順5-3
    ここまで問題がなければ、このような状態になります。
  6. グラデーションの調整を行います。
    手順6-1
    グラデーションを塗ったレイヤーの透明度を「50%」に変更します。
    手順6-2
    うまくいけば、こういう状態になります。
    なんとなく、雰囲気が出てきたでしょうか。
    しかし、もうちょっと手を加えていきましょう。
  7. ボーダーを塗るための準備を行います。
    手順7
    画像全体を選択して、それから2px縮小します。
    選択領域を反転しておきます。
    今回、角は丸めません。
  8. ボーダーを塗ります。
    この手順は、一気に進めてしまいます。
    3枚目のレイヤーを作成します。
    手順8-1
    最上部になるように配置してください。
    手順8-2
    白色で描画色塗りします。
    画像の端2pxをすべて塗ってしまいます。
    作業しやすいように、表示倍率を800%に変更してあります。
    手順8-3
    画像全体を選択して、それから1px縮小します。
    選択領域を反転して、角もそのままです。
    黒色で描画色塗りします。
    画像の端1pxをすべて塗ってしまいます。
    手順8-4
    アクセントに、角の1pxを白色で塗っておきました。
  9. ボーダーの調整を行います。
    手順9-1
    3枚目のレイヤーをオーバーレイモードに変更します。
    手順9-2
    白色はハイライトっぽく、黒色はシャドウっぽくみえるようになります。
    手順9-3
    等倍で表示すると、こういう状態になります。

Web素材の完成

画像として書き出して完成です。
完成画像
透明度のある、それっぽい画像が出来上がりました。
パターン追加
背景とグラデーションの間にパターン塗りを加えてみました。
雰囲気が変わって、いい感じになります。
こういうWeb素材が使われているのを、よく見かけると思います。

自分で作るのが面倒な方へ

ここで使用したデータファイルをお使いください。
背景画像の色を変えるだけで、いろんなパターンの素材が作れることと思います。
ダウンロードで内容を表示してしまうブラウザの場合には、右クリックメニューから対象を保存してください。
Photoshopでは、こういった作業をマクロにしてしまえば、いろんなサイズでも自動的に作れます。
しかし、GIMPではマウス操作の記録という機能がなく、スクリプトをコーディングしなければなりません。
自動化できるようになるのは、いつになることでしょう…。

更新履歴

2008/04/14
サイト移動に伴うHTMLの修正(旧URI:[廃止])
2007/11/16
公開