月別アーカイブ: 2013年4月

PerlのImagerでRPGツクール用画像素材を透過PNG画像に変換する

フリーで配布されているRPGツクール用画像素材の中には、改変してRPGツクール以外にも使用してよいというありがたい規約のものが存在する。

なのでさっそく素材として使おうとすると…背景が緑だかグレーだかの色で塗りつぶされていて透過になっていない!

おそらくこれがRPGツクール画像素材の規格なのだろうが、このままでは他のことに使いにくい。そのためこれを透過PNG画像に変換することを考える。

1個1コPhotoshopなどで加工してもよいが、なんとか楽をする方法を考えたい。

そういえば以前PerlのImagerをちょろっと勉強していたのを思い出し、それでなんとか自動化できないか、と考えた。

公式ドキュメントにバッチリ載ってる。

こんな感じで実現できた。

use Imager;

local $inputdir = './in';
local $outputdir = './out';

my @filelist = &get_files("$inputdir/");
foreach(@filelist){
	my @name = split(/\./,$_);
	my $in = Imager->new;
	$in->read( file => "$inputdir/$_") or die $imager->errstr."\n$inputdir/$_\n";
	my $work = Imager->new(xsize => $in->getwidth, ysize => $in->getheight, channels => $in->getchannels);
	my @color = $in->getcolors();
	$work->box(filled => 1, color => $color[0]);
	my $out = $work->difference(other => $in);
	$out->write( file => "$outputdir/$name[0].png")or die $out->errstr;
}

 

 

Yahoo!BBで自宅サーバから外部宛にメールを送る

数年ぶりに自宅サーバを作って遊んでいる。やはり外部宛にメールが送信できないと楽しくない。

最近はOP25Bとかいう面倒なものがあるが、外部宛メールはSubmission Portである587を使って、プロバイダのSMTPサーバにSASL認証を通し、中継してもらうように設定すればOK。なはずだったが…

症状

一部のアドレスからは送信できるが、他のアドレスからは送信できず以下のエラーメールが返ってくる。

 host ybbsmtp.mail.yahoo.co.jp[183.79.29.230] said: 521 ybbsmtp.mail.yahoo.co.jp closing transmission channel. This email address must be verified first before you can use it for Sender/From field. (in reply to MAIL FROM command)

エラーメールから分かるとおり、プロバイダはYAhoo!BBである。

原因

調べてみると、Yahooのウェブメールの画面で送信元アドレスをいちいち登録しないといけないらしい。めんどくさっ
画面を開いてみると、送信に成功したアドレスはすでに録されていた。そういえば大昔試しに登録して見た気もする…
そして当然、ここに登録していないアドレスではエラーが返ってきていたわけだ。

ならば新しい送信元アドレスを登録すればいいのだが、将来さらにアドレスを追加することを考えると、う~ん…

というか、よく見たらybbsmtpでリレーしたメールのヘッダにヘンなものがついてる。

X-Apparently-From: <xxxxxxxx@yahoo.co.jp>

認証に使ったYahoo! BBのアドレスが大公開されてる!

もはや使い続ける気がわかない。

ちなみに

最初はPostfixの設定に原因があるだと思い、少し検索したけど分からなかったのでオライリーの本を少し読んだ

結果から言えば関係なかったのだが、いい復習になったので、アフィリエイトリンクとかいうものを張ってみる。

対処

MyDNS.JPで利用者向けに当面のあいだメールリレーサービスが提供されているので、ここに中継してもらえばOK。何でこれまで知らなかったんだ…

「当面のあいだ」というのが気になるので次の手を考えたい。この機会にちょっと探してみたが、自宅サーバのメールをリレーしてくれるサービスは他に見つからなかった。有料でも月1000円くらいまでは払ってもいいと思うのだが、やはりニッチな需要なのか…

Windows7でhtmlファイルを開くと上書き保存できないといわれる

ここ数日、よく分からない現象に悩まされてきた。

症状

htmlファイルを編集しようとサクラエディタで開くと、「…は現在他のプロセスによって書き込みが禁止されています。」が出る。当然、他のエディタで同時に開いているわけでもなければ、作成途中のプレビューのためブラウザで開いている訳でもない。

このエラーは常に表示されるのではなく、タイミングが悪い時に発生するとしか言いようのないほどランダムに発生する。編集途中から上書きできなくなることもある。再起動によって直る場合もあるが、直らない場合もある。しかし、時間経過によっていつかは必ず直る。

サクラエディタの問題かというと、この問題が発生している間は、たとえば真魚で開いても上書きできない。もしかしてと思って試してみると、真魚で編集中に上書きできなくなる現象も発生した。

さらに訳の分からないことに、.txtやら.cssやら.jsやら.cgiやら.phpをエディタで編集しているときに発生したことはない。

こうなるとWindowsの問題な気がする。またどこか壊してしまったか。

対処

エクスプローラのプレビューウィンドウを非表示にする。

これがWindowsの仕様だそうで……宝くじ当たったらMac買いたい…

 

 

CentOS6+MySQLでphpMyAdminの日本語が文字化けする

表題の通り、MySQLのデータベースに日本語のレコードを保存して、それをphpMyAdminから見ると日本語が文字化けしていた。

症状

文字コードをUTF-8に設定したコンソールでは問題なく表示される。Perlからuse utf8;してDBIで接続しても問題ない。phpMyAdminから見るときだけ文字化けする。当然、ブラウザが文字コードの判定を間違えている状態でもない。

解決

my.cfgにdefault-character-set=utf8を記述。

注意点は、CenOS6でデフォルトで入っているMySQLは5.1でありこと。5.5以降で使うcharacter_set_server=utf8では不可。