ImageMagickで画像の情報を得る

画像のいろんな情報を得るには、
identify -verbose
とするわけですが、
解像度を取得しようとコードを書いていたところ、ちょっとおかしな個所を見つけたので調べてみました。

まず、解像度は
「Resolution」
で取得できます。
最初はこれだけ見ていたのですが、実際のものと違うことがあったので悩んでいました。

よくみると
「Units」
という項目があり、これで単位を指定していることが判明。
通常は
「PixelsPerInch」
インチを基準にしていてDPIやPPIと言われるもので、
これであればResolutionはそのままDPIとなります。

次に
「PixelsPerCentimeter」
これが曲者でした。
インチとセンチを換算する必要があります。
1cm = 1inch / 2.54
なので、
[pixel/inch] = [pixel/cm] * 2.54
というわけです。

ちなみに
「Undefined」
はどういうものかよくわかりませんが、Resolutionは100が多いようです。

JavaScriptでURLをカッコよくパースする

次のようなURLがあったとします。
http://www.printry.jp/product/category/detail.php?product_category_id=15#productId193
これをパースしていろいろ弄りたいのですが、
「?」で分割して、右側を「&(&)」で分割して、「=」で分割して…
というのが何をやっているのか一目瞭然なのですが、次の方法があるようです。


var elm = document.createElement('a');
elm.href = 'http://www.printry.jp/product/category/detail.php?product_category_id=15#productId193';

console.log(elm.hostname);
// www.printry.jp
console.log(elm.pathname);
// /product/category/detail.php
console.log(elm.search);
// ?product_category_id=15
console.log(elm.hash);
// #productId193

これはなるほど、DOMに丸投げというわけですね。
カッコよく決まってデメタシデメタシ。

PayPalエクスプレスチェックアウトが機能しない

PayPalのオンライン決済「エクスプレスチェックアウト」が機能していないのを確認しました。
ログを見ると「Problem with the SSL CA cert (path? access rights?)」となっています。
どうやら、bashを更新したのが原因らしく、Apacheを再起動することで回避できました。

でめたしでめたし

ネット印刷受注システムPOASにPSD入稿を実装

ネット印刷受注システムPOASで、PhotoshopのPSD形式に対応しました。
拡張機能となりますので、別途契約が必要になります。
現在使える状態になっていますが、近いうちに判定機能を追加します。

機能の概要としては、
レイヤを合成して画像化します。
解像度を調べて仕上サイズを推測します。
PSDファイルのまま入稿できます。

プリントライで問い合わせがあったので、先送りにしていた機能を前倒しで導入しました。

GhostScriptでPDFを画像化する際にジャギーが目立つ

GhostScriptでPostScript系のデータを画像化できるわけですが、
「-dTextAlphaBits=4」
というおまじないが効かないことがあるようです。
アンチエイリアスを設定できることになっているのですが、PDFには効かないようです。
EPSは有効です。

PDFで設定が効かないのであれば、4倍大きいサイズで画像化してからアンチエイリアスを有効にして1/4にリサイズを行うことで対応できますが、
A4サイズ程度のデータになると、かなりのマシンパワーが必要になるため現実的ではありません。
他に何らかのオプションがあるのかどうか、また気が向いたら調べてみます。

ネット印刷通販システムのページデザイン機能を更新

印刷通販サイト「プリントライ」でも稼働している、ネット印刷通販システムPOASのページデザイン機能を更新しました。
これまでは、自由に編集できるようになっていましたが、いろいろと問題が出ていたのでバッサリと廃止。現在は1デザインのみに絞っています。
ヘッダ・コンテンツ・フッタ・メニュー・スタイルシートと項目が分かれ、個別に編集します。
内部で統合して、テンプレート化して高速な表示を目指します。
タグの構造をちょっと変更したので、スタイルシートの適用が外れている個所があるかもしれませんので、確認をお願いいたします。

PHPのSmartyテンプレート内でstr_repeatを使う

テンプレートエンジンSmartyでのお話。
PHPの関数も基本的には使用できるのですがパラメータで何時も同だったらちょっと悩むので、検索したらヒットするように残しておこうかなと。
マニュアルを見なくても大体わかりますよね。
string str_repeat ( string $input , int $multiplier )
PHPでstr_repeat(1,2)と書くものは、
Smartyでは第1パラメータを先頭に持ってきて、{1|str_repeat:2}となります。
一度使うとしばらくは覚えてるんですが、なぜか忘れてしまっていますね。