2008年01月29日

歯のすきまにはさまった何か

先週の金曜日から、頭を悩ましていたヤツがやっと、、取れた!
はぁ、すっきり。
今週の頭に契約をしたこの案件、今月は仕事がてんこ盛りなので仮見積の段階で問題となる部分をあらかじめコーディングしておく作業をしているんですが。
いまやってるこの作業、8年ほど前に作られたいにしえのすかし処理アプリケーション、今回はこれをマルチタスク対応および高速化という要件で受注するところです。
で、問題になるだろうなぁ、とおもっているのが、これ仕様書が2,3ページの設定ファイル(INIファイル)の書き方のみで内部的なものは一切ないというところ。
こんなやつを、作りなおすことになってわけです、しかも要件に現在の設定ファイルをそのまま使えるようにとのこと。
処理された画像と設定ファイルにかかれている数値をたよりに、内部処理を逆解析していくわけなんで、けっこうしんどいです。

高速化処理に関してはめどがつきそうだというのは先週わかったのですが、すかし処理の結果が微妙に違うところに頭を悩ませていました、
上記のような状況なんで、内部でなに小細工してるかわかりゃしない、単位はmmとかいうけどほんとにmmで計算されてんの?と疑ったりするわけです。

で、今日気分転換に解像度が300DPIの画像をつかって処理をしてみたら、あれ?綺麗に出来てる、なんで?
400DPIだとずれるのに(本番は400DPI固定なのでテストをしてなかったのも悪いですが)、、、
怪しい・・・
ロジックを見直して、DPIに関するところにログ出力処理をいれて、手計算を行った結果と比較してみると。

本来 2.666 とでるところが なぜか 2?
うわ、これだ、、

というわけで、問題の何かはこいつでした。

---
source.XRes 400, 300
buf.XRes 150

float dtx = source.XRes / buf.XRes;

ただしくは、

float dtx = (float)source.XRes / buf.XRes;

300だと、150で割り切れるので問題がでないということですねぇ、

こんなやつのために、休みはさんでなんでやろぉ、と悩んでいたのかとおもうと、情けないです。

Posted by ひじりん at 21:23│Comments(0)駄文
上の画像に書かれている文字を入力して下さい