These pages are written by only Japanese.

Welcom to My Diary.com
最新の日記タイトル一覧カテゴリ別タイトル一覧トップへ戻る〜

こんばんわ♪ 現在は5月18日(土)20時3分。 8時を過ぎてしましました。


hns - 日記自動生成システム - Version 2.19.5 (色々 Fixed)

先月 2011年10月 来月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Namazu for hns による簡易全文検索です。
詳細は 詳細指定/ヘルプをご参照下さい。
検索式:

2011年10月13日(木)

PHP で画像比較

2つの画像がどの位違うのかを数値化するプログラムです。
ピクセル毎の色の違いを合計するだけの簡単な比較です。
教科書の初めに出てくるような一般的な手法で、SSD (sum of squared difference) という名前が付いています。 10分で作った割に、意外と使えそうなのでコードを晒します。
<?php

  /*
   * dissimilarity measure
   * sum of squared difference
   * 2011/10/13- yoya@awm.jp
   */

function usage() {
    echo "Usage: php bitmap_comp.php <file1> <file2>\n";
}

if (($argc != 3) || (! is_readable($argv[1])) || (! is_readable($argv[2]))) {
    usage();
    exit (1);
}

$data1 = file_get_contents($argv[1]);
$data2 = file_get_contents($argv[2]);
$im1 = imagecreatefromstring($data1);
$im2 = imagecreatefromstring($data2);

if ($im1 === false || $im2 === false) {
   echo "Error: image1 or image2 has broken.";
   exit (1);
}

$width1  = imagesx($im1); $height1 = imagesy($im1);
$width2  = imagesx($im2); $height2 = imagesy($im2);

$width_ratio  = $width2 / $width1;
$height_ratio = $height2 / $height1;

if ($width_ratio < 0.5 || 2.0 < $width_ratio ||
    $height_ratio < 0.5 || 2.0 < $height_ratio) {
    echo "Error: image1(".$width1."x".$height1.") image2(".$width2."x".$height2.")\n";
    exit (1);
}

$width = min($width1, $width2);
$height = min($height1, $height2);

$distance_square_sum = 0;

for ($y = 0 ; $y < $height ; $y++) {
    for ($x = 0 ; $x < $width ; $x++) {
        $i1 = imagecolorat($im1, $x, $y);
        $i2 = imagecolorat($im2, $x, $y);
        $rgb1 = imagecolorsforindex($im1, $i1);
        $rgb2 = imagecolorsforindex($im2, $i2);
        $red_diff   = $rgb1['red']   - $rgb2['red'];
        $green_diff = $rgb1['green'] - $rgb2['green'];
        $blue_diff  = $rgb1['blue']  - $rgb2['blue'];
        $distance_square_sum += $red_diff*$red_diff + $green_diff*$green_diff + $blue_diff*$blue_diff;
    }
}

echo $distance_square_sum / ($width * $height) . "\n";

2011年10月16日(日)

SWFEditor 0.47 をリリースしました

Flash SWF ファイルの中身を差し替える SWFEditor の v0.47 をリリースしました。 0.47 の主目的は libpng 1.40 対応と Windows SDK 対応です。
少しビット処理を高速化してますが誤差範囲だと思います。
(塵も積もれば山となるので、今後も地道に改善を続けます)

libpng 1.40 対応:

0.47 から漏れていたので 0.48 でリリースしました (追記)
PNG 画像のデータなのかチェックするのに通常 png_check_sig を使いますが、1.40 で削除されました。
png_sig_cmp で代用できるので、そちらを切り替えました。
確かに、png_check_sig と png_sig_cmp は似た処理なので片方を消すのは分かりますが、マクロで互換性残せるのに、なんで消しちゃったんでしょうね。

Windows SDK 対応。:

config.w32 を作りました。
又、そのままでは Windows でコンパイル出来なかったので、幾分かコードを修正しました。
PHP Windows 版 build 方法
Windows で PHP を build 出来る環境をお持ちの方、是非お試しください。

その他:

  • setActionVariables, replaceActionStrings に文字列以外の型で値を渡すと、Seg.fault する不具合を修正しました。
  • www/〜 の解析ページのベクター画像一覧が MacOSX のブラウザで表示できない問題を修正しました。
  • ビット処理を幾分か高速化しました。

2011年10月19日(水)

IO_SWF 2.0.13 をリリースしました

IO_SWF ver2.0.13 をリリースしました。 RemoveObject, FrameLabel, DefineButton タグの詳細表示に対応してます。
殆どの機能追加は beketa さんによるものです。thanks!
あと、CXFORM と CXFORMWITHALPHA の不具合を修正したので何か改善するかもしれません。
DefineButton については、SWFEditor で実装中の の準備でもあります。verify したいので。

2011年10月21日(金)

A社で発表

PHP OpenGL/AL ネタで某A社で発表してきました。
資料
移植の話
デモプログラム

反省:

  • OpenGL のハローワールドを見せればよかった。
  • MML 処理は説明の図を作った方がよさそう
  • BASIC LIBRARY 忘れてた。PSET や LINE とかの。
  • 今後の課題がまとまってない。
  • 言語拡張の仕組みを話したいのか応用例を見せたいのか曖昧。

2011年10月30日(日)

PHP勉強会の資料作成 進捗半分

一週間以上かけてようやく半分ほど出来ました。
ビット処理は頭の中にはイメージはあるのですが、 PowerPoint では表現し切れません。(使い方が分からないとも言う) 何処まで説明しようか、まだ迷いながら書き進めています。 あと二週間、完成するかな。。
というか、これ嬉しい人いるんだろうか。
まぁ、聴く人いなくても発表するけどw

これで、5 日分だよ〜。

タイトル一覧
カテゴリ分類
Database
JXTA
Java
XML
awm
bookmark
keyword
memo
news
research
Powered by hns-2.19.5, HyperNikkiSystem Project