[HOME]

pag1teto_help

# $ + バグ取り履歴

 

最新版でもまだ取れていないかも知れないバグmay_bug

ver0.86 bug86

ver0.85 bug85

ver0.84 bug84

ver0.83 bug83

ver0.82 bug82

ver0.81 bug81

ver0.80 bug80

ver0.79 bug79

ver0.78 bug78

ver0.77 bug77

ver0.76 bug76

ver0.72 bug72

ver0.70 bug70

ver0.68 bug68

ver0.66 bug66

ver0.63 bug63

ver0.61 bug61

ver0.60 bug60

ver0.59 bug59

ver0.58 bug58

ver0.58-2 bug58sono2

ver0.57 bug57

ver0.55 bug55

ver0.53 bug53

ver0.52 bug52

ver0.50 bug50

ver0.49 bug49

ver0.47 bug47

ver0.47-2bug47sono2

ver0.45 bug45

ver0.43 bug43

ver0.41 bug41

ver0.39 bug39

ver0.36 bug36

ver0.34 bug34

バグ取り履歴 その2bug_rireki2

 

# $ + 最新版でもまだ取れていないかも知れないバグ

・メモリー不足に陥った場合の処理は、まだ完全ではありません。

 

・1280*960という様な大きな画像を一括減色genshoku_imiしている時に、200枚に1枚程の確率で、一般保護違反が出るというレポートを受け取っています。ver0.41でもまだ取れていなかったそうです。未だに原因不明です。

 

・最適化パレットの数が118色だとOKなのに、236色だと、人間の唇の彩度が落ちて、肌色に近くなってしまうことがあるというレポートが来ています。これは、もしかしたら、システムカラーの20色が、僕の環境と異なるせいかと思ったのですが、フルカラーモードで見ても同じということで、原因が不明のままです。

 

・ImageKnifeの問題か、あるいは、GA-1024Aのドライバー(ver3.11)の問題か判っていないのですが、16bit色モードで使うと、明度・コントラストの変更を行うと、ネガになってしまうという問題があります。8bitや、24bitでは起こらないので、GA-1024A側の問題である確率の方が高く、他機種では起きないのではないかと考えて、放置してあります。もしも、他機種でも同じ状況になれば、教えて下さい。

 

# $ + ver0.86でのバグ取り

Win95β3windows95上でコンパイルしたせいで、起動後Kernelで一般保護違反が出ていました。チェック不足で済みませんでした。

 

# $ + ver0.85でのバグ取り

・Windows3.1Jでは、各フォームの左上の端にスペースバーのマークが表示されています。しかし、Windows95windows95では、アイコンiconが表示されています。ですから、これまで付けていなかったのですが、すべてのダイアログにアイコンを付加しました。

・実行順序によっては、「すでにロードされています。」というエラーが出る場合がありました。

・「登録ダイアログregist」で「終了」した場合、入力した名前やトークンtokenが記録されていませんでした。

・「減色オプション」ダイアログの「再変換」ボタンで、1,4bitへの再変換ができませんでした。

・画像ファイルを読み込んだ場合以外は、減色にかかった時間の表示がでたらめになっていました。

 

# $ + ver0.84でのバグ取り

・「減色オプション」のダイアログで、1bit化の時のオプションを指定している時に、最適化パレットの数として3色以上の指定が可能になっていました。

・pag1teto.ini内で最適化パレットの数が0になっている場合に、それを読み込むと256色とみなしていました。その結果、スタティックカラーが、0色になってしまっていました。

・サイズを指定して、比を変えてリサイズの時、前回指定した内接または外接のリサイズの値を使っていました。

・8bit環境で、8bit画像を用紙拡張貼り付けオプションをチェックした状態で、貼りつけた場合エラーで止まっていました。

・画像をロードする前は「編集」「レタッチ」などをディセーブルにしました。

・ImageKnifeでメモリー不足が起こった場合に、すぐには終了しない様にしました。

・UNDOなしの時、起動時に中央に白い四角がありました。

・ImageKnifeのバグで、8bit環境での回転のバックグラウンド色がR,Bが入れ替わっていました。

・Clipboardからの張り付けの時、ズームの倍率が食い違う場合がありました。

・レタッチのパラメーターを入力するダイアログで、「OK」、「キャンセル」ボタンがフォームからはみ出していました。

 

# $ + ver0.83でのバグ取り

・減色オプションでキャンセルボタンを押すと、最適化パレットの色数が0になってエラーや一般保護違反が出たり、ひどい画質になったり様々な副次的なバグの原因になったりしていました。これまでは、pag1teto.iniやグローバルメモリーが壊れているとばかり思っていました。94/12/1(ver0.50)以来の宿年のバグがやっと取れました。

・scroll.dllを同梱し忘れていました。

・平均ドット数の所で、x方向の値の代わりににy方向の値が入っていました。

・状況依存ヘルプになっていない部分を直しました。

・コモンダイアログで拡張子を選択した後保存すると、拡張子とフォーマットが食い違ったファイルが出来ていました。

・減色したファイルだけしかヒストリーに並んでいませんでした。

・8bit->4bitに階調変換後、UNDOすると、24bit画像になっていました。

・最適化パレット0で、1bit化して、UNDOすると、モノクロ8bitの画像になっていました。

・最適化パレットの数=0,使用する固定パレットの数=0という無意味なデータを初期値として使っていたために、1bit化への減色時に浮動小数点エラーで止まっていました。

・ズーム表示の上限を16から8に変更しました。

・「登録ダイアログregist」で「終了」した場合、次回起動した時に、フォームの色が黒くなったりしていました。

 

# $ + ver0.82でのバグ取り

・フルカラー環境で、UNDOなしオプションの時、8bit化すると一般保護違反が出ていたバグを取りました。かなり前からレポートが来ていたのに別のバグと紛れて、長い間とれずにいました。

 

# $ + ver0.81でのバグ取り

・ズームの倍率が整数倍に限られる様になっていました。

・8bit以下の画像全体を回転した時に、パレットが消えて真っ黒になっていました。

 

# $ + ver0.80でのバグ取り

・8bitモードでクリップボードへの切り取り、コピーをするとエラーが出ていました。

 

・「色の射影projection」のメニューが8bit画像の時も使えるようになっていました。

 

・オープニングタイトルのサイズが、フォントサイズを無視していました。

 

●回転に関連していろいろバグがありました。

 

・0度または、右回転を指定するとエラーが出て止まっていました。

 

・24bit画像の回転やミラーで無駄に減色を行っていました。

 

・8bit画像の矩形部分回転で無意味な減色が起こって、UNDOができなくなっていました。

 

・DLLへファイル渡しで減色を行う時に、temp.bmpが無いと削除時にエラーを出していました。

 

・ズーム(選択範囲のズームimage_zoomズーム表示disp_zoom)の倍率が大きいとImageKnifeのエラーが出る様なので、16倍までに制限しました。限界は調べていません。

 

・前回一括変換時のディレクトリが存在しなくなった場合に、書き込めないエラーが出て終了していました。

 

・ver0.78からの、クリップボードから、直接画像に貼り付ける機能を使った後上書き保存すると、ファイルネームを聞いてこずに、以前に読み込んだファイルネームに保存してしまっていました。

 

・減色のヒストグラムの所で、pag1wini.dllの0001:38CBで一般保護違反が出ていたバグ対策を少ししました。(このバグは、フルカラー環境でUNDO無しで使うと出るバグで、VB側で3行直すことでver0.82でとれました。)

 

・ImageKnifeでエラーが起こると、グローバル変数が破壊される場合がある様に思えるので、破壊された時にそのことを早めに検出できる様にしました。

 

 

# $ + ver0.79でのバグ取り

・ver0.78で同じパレット内での貼り付け時にデバッグ用のメッセージボックスを残したままでした。

 

 

# $ + ver0.78でのバグ取り

・クリップボード関係でいっぱいバグがありました。

・クリップボードからの貼り付けを2度行うと一般保護違反が出ていました。

・DDBの8bit画像の貼り付けの時に、パレットが変になっていました。

・白紙への貼り付け時に白紙部分の色が変わっていました。

・選択矩形から画像へ貼り付ける時、2度目から位置が変でした。

 

 

# $ + ver0.77でのバグ取り

 

リソースresourceを24%消費しているにも関らず、20%以上のリソースがあれば、起動できていました。このために、いろいろ妙な動作が起こっていた様です。

 

メモリー不足に対する対策を根本的に強化すべきなのですが、Windows95の時代も近いし、Delphiに変更するかも知れないので、取り敢えずこのままです。

 

# $ + ver0.76でのバグ取り

・矩形切り張りの範囲を反転していました。NEC PC-98+I/O data GA-1024Aの環境で作っていたときには、プロパティーをコピーから反転に変更してみても変化が無かったので気付きませんでした。

 

・一括変換のフォームで、実行ファイルのあるドライブ以外のディレクトリの削除ができない場合がありました。

 

 

# $ + ver0.72でのバグ取り

・長い辺が1290以上の画像の減色をすると、統計を取る部分でエラーが出ていました。正確に言うと、

長い辺^2*短い辺>=2^31

の時にエラーが出ていました。

 

 

# $ + ver0.70でのバグ取り

・ver0.68でのバグ取りが不完全で、副作用が出ていて、階調変換無しで一括変換すると、エラーになっていました。

 

・縦100dot未満にリサイズ後減色すると、進捗状況のゲージを表示する所でエラーが出ていました。

 

 

# $ + ver0.68でのバグ取り

・「一括変換」で、「リサイズ」しない設定になっていてもリサイズしてしまっていた。

 

・ver0.65でメモリー渡しでの減色時の必要メモリーを節約して以来、一括変換で、8bit以下に減色すると一般保護違反が出ていました。

 

# $ + ver0.66でのバグ取り

・16bit色モードで無駄に減色を行なっていました。これは、24より小さいので減色が必要という判断をしてしまっていました。まだ、15bitや16bit色への減色は出来ていません。

 

・リサイズのサイズ指定後の動作がおかしくなっていました。これは、0.58アップロード直前の95/1/22に、サイズ指定のフォームから、リサイズアルゴリズムのフォームにジャンプする様に変更した時に作ったバグでした。

 

# $ + ver0.63でのバグ取り

・起動直後に、白い四角が意味もなく2つ表示されていたのを消しました。

 

・1/27以降cubicci.dllを使うリサイズ機能が使えなくなっていました。BC++4の最適化のバグを再現するプログラムをテストするのに、pag1tetoを使っていて、そのために変更していた分を直さないままアップロードしていた様です。

 

# $ + ver0.61でのバグ取り

・ヒストリーのファイル名が大文字と小文字が混在していたのを大文字に統一しました。

 

 

# $ + ver0.60でのバグ取り

・ImageKnifeを使ってのリサイズのオプションが保存されていませんでした。

 

・ヒストリーの保存個数が食い違っていました。

 

 

# $ + ver0.59でのバグ取り

・pagw32s.dllが無いというエラーが出ていました。Win32でコンンパイルしたDLLをVB2.0Jから呼べるかどうかを実験していたのを直し忘れていました。

 

登録ダイアログregistでの終了が出来なくなっていました。

 

 

# $ + ver0.58でのバグ取り

・8bit環境でフルカラーファイルを読み込み、「上書き保存save_overwrite」すると、フルカラーファイルが保存されるとヘルプに書いていたのに、8bitの表示イメージが保存されていました。このバグは、ver0.43からずーっと残っていました。このバグは、「別名保存」では起こりませんでした。自分ではこちらばかり使っていたので、気付くのが遅れました。実際に使ってきづいたのではなく、プログラムを編集中にバグに気付きました。

 

・4bit色に減色genshoku_imiした画像の切り張りを行っているときに、エラーが出ていました。

 

・システムフォントが16dotでない場合、pag1tetoを再起動した時のフォームサイズが、縮んだり伸びたりしていたバグを取りました。

 

・「オプション」「全般」の所で、「編集」「元に戻すundo」を禁止していた場合に、「編集」「リサイズresize」すると一般保護違反がでていました。

 

ImageKnifeimage_knifeの拡大縮小機能を使うと、画像の位置がソースの0.5dot分ほどずれるバグがありました。また、pag1tetoでは使っていませんでしたが、K アンチエイリアシングを行うと、上の端や右の端に黒い線が出たりするバグがありました。

 

・パレットの使えないディスプレーモードの時に、「オプション:全般zenpan_option」で、スタティックカラーの選択は意味をなさないにも関らず、表示されていました。

 

・最適化パレット数をp色として、画像の総ドット数がpドット未満で、使うスタティックカラーの数が0でない場合に、正しくない変換が行われていました。236dot以下の画像はあまりないでしょうが。

 

 

# $ + ver0.58でのバグ取り その2

・減色後のビープ音がフルカラー環境では鳴りませんでした。また、ビープ音をオフにしていても、鳴ってしまう場合もありました。

 

・CD-ROMに収録されて、CD-ROMから直接起動した場合に、pag1twin.exeのあるディレクトリには書き込む事ができないのでエラーが出ていました。その場合には、pag1teto.iniとlicense.iniをWindowsディレクトリに保存するようにしました。ただし、現在の所、license.iniやpag1teto.iniが他のソフトとぶつかった場合の対処はしてありません。

参考 ファイル構成file_kousei

 

・一括変換のフォームで、変換元のファイル数が0の時に一括変換を実行するとエラーが出て止まっていました。

 

JPEGの圧縮品位jpeg_optionの変更ができなくなっていました。

 

・1色しか使われていない画像を、減色すると、0で割ったというエラーがpag1win[i].dllで出て止まっていました。

 

・横幅8dot未満あるいは、高さが3dot未満の画像を、1bitあるいは4bitに減色すると、ImageKnifeで一般保護違反が出ていました。とりあえず今回は、限度以下のファイルの1,4bitへの減色機能を使えなくしただけです。

 

・以前に切り張りのUNDOを可能にした時に、バグを入れてしまって、張り付けや続けて切り取りを行う時の動作が変になっていました。

 

・等倍表示で、「編集」「回転rotate」した時に、フォームが画面サイズにあわなくなっていました。

 

・8bit画像を4bit環境で表示すると変になっていた。

 

# $ + ver0.57でのバグ取り

niftyに非nifty版の状態でアップロードしてしまっていたのを直しただけです.

 

# $ + ver0.55でのバグ取り

・フルカラーディスプレーで使っていると、8bitへの減色genshoku_imiができなくなっていて、4bit固定パレットに減色genshoku_imiしていました。BITSPIXELが、24ではなく、32と返ってくることを忘れていました。

 

# $ + ver0.53でのバグ取り

ファイルマネージャーfile_managerからのダブルクリックなど、起動時にファイルネームを指定すると、256色ディスプレーでも、K 16色に減色genshoku_imiして表示していたバグを取りました。また、ver0.53からは、16色ディスプレーでは、16色に減色genshoku_imiして表示するようにしました。

ただし、16色モードの時に、Windowsを無視して直接パレットを変更するというGVの様な機能はありません。

 

・システムフォントが16dot以外の時にもスカスカになったりはみだしたりしないようにしました。

 

・フルカラーモードでは、減色genshoku_imiのオプションの所での、「再変換sai_henkan」ボタンが無効でしたが、可能にしました。

 

・16色への減色genshoku_imi中に、進捗状況shinchokuのダイアログに・4→8狽ニ表示されていたのを、・4→4狽ノ直しました。

 

・8bitの画像に対して、「編集」「4bit化bit_4」を行うと、一般保護違反が出ていたバグを取りました。

 

・24bitモードが複数プレーン(PLANES>1)からなるディスプレーの場合に、8bit環境であるとみなして動作していたバグを取りました。

 

 

# $ + ver0.52でのバグとり

フルカラーディスプレーの時など、パレットの使えないディスプレーモードで使っているときに減色genshoku_imiするとヒストグラムの辺りで一般保護違反が出ていました。

 

# $ + ver0.50でのバグ取り

・ボロノイ反復が1以上の時に一般保護違反が出ていたバグを取りました。

 

・スクロールバーを操作して左端に移動させたときの動作が、起動直後は一度無視されていたバグをとりました。

 

・ver0.49で、固定パレットを使う場合のアルゴリズムを変更したために、固定パレットを使い、ヒストグラム精度が、256K色中256K色または、16M色中32K色の時に一般保護違反が出ていました。

 

・ver0.49で、K 16色への減色genshoku_imi機能を改良するために、rgbでの擬似階調表示などを追加しましたが、このオプションと組み合わせると正しく動作しないオプションがいっぱいありました。ver0.50では、使えないオプションを表示しないようにしました。

 

・スタティックカラーをGA-1024Aと同じだと期待せずに、システムパレットから読み出すようにしました。

 

・矩形領域の切り出しの時に、左ボタンだけではなく、右ボタンが使えていたのですが、バグの原因になっていました。これを使えなくしました。

 

# $ + ver0.49でのバグ取り

・ver0.47では、DLLへのファイル経由での受け渡しオプションを選択した場合に、バグがあって正しく動作しなくなっていました。このバグをとりました。

 

・比視感度補正と、第一主成分に垂直に分割の組み合わせに小さなバグがあり画質が微妙に悪くなっていました。

 

また、ver0.34で変更した、ヒストグラムでの比視感度補正にもバグがありました。32K色中32Kまたは、256K色中256K色で、第一主成分に垂直に分割するという組み合わせでの画質が、2割程悪くなっていました。

 

・pag1teto.iniの内容が壊れて、(どうして壊れるのかの原因についてはまだ判っていません。)

[EDIT]

SOFT=0

などと範囲外の値が入っていた場合に、レタッチ処理のパラメーターを聞く前の段階でプロパティーが不正ですというエラーが出てプログラムが終了してしまっていました。

この問題を取り敢えず、pag1teto.iniからの読み込み時にパラメーター範囲のチェックを追加しました。

 

矩形の切り貼りimage_copyについてのヘルプが正しいトピックにジャンプしない状態になっていました。このせいで、せっかく追加した機能が使えなかった人が多いようです。最初気付かずに、ヘルプに書いてあるのに、という様な反応を返したこともあって、すみませんでした。

 

 

 

# $ + ver0.47でのバグとり

・等倍表示を選択した時に、フォームのサイズが画像のサイズに合わせて変化しなかったバグを取りました。でも、2度選択すると正しくなっていました。

 

・フォームを最大化した状態で、等倍表示を選択すると、エラーで止まっていたバグを取りました。

 

・ヘルプの状況依存が不完全になっていたので、それを多少直しました。

 

・ver0.45での改造の副作用で、フォームをロードしたときに記憶した位置でなくなっていたのを直しました。

 

・ver0.45でファイルマネージャーfile_managerから、ドラッグ&ドロップを可能にしましたが、ドラッグ&ドロップで表示させたファイルについては、すでに同じデータがあっても、過去に変換したファイルのリストold_file_listに並ぶようになっていました。ver0.47では、このバグを取りました。

WindowsAPIから受け取ったファイルネームのchr$(0)で終わる文字列を、rtrim$()で普通の文字列に変換したつもりだったのですが、chr$(0)が最後についたままでした。

 

減色genshoku_imi処理中の進捗状況shinchokuのフォームで、ファイルのサイズが、ヒストグラムの段階が終わるまで、以前のファイルサイズが残ったままになっていたバグを取りました。

 

・pag1tetoを1つ起動するたびに、Userリソースresourceが15%ずつ減っています。5個位が限度でした。リソースの残りかたによっては、Windowsのチェックをすりぬけて、pag1tetoの中のエラーチェックの手薄な部分でエラーを起こしていた様です。Userリソースの消費を減らす方法は思い付かないのでとりあえず、20%以下なら起動できなくするという風にしました。

 

 

ver0.47でのバグ取り その2bug47sono2

 

# $ ver0.47でのバグ取り その2

・フルカラーモードで使っていると、一括処理で、減色genshoku_imiが行われていませんでした。ver0.47では、8bitまたは、24bitへ変換するようにしました。

 

・γ補正のパラメーターの初期値が、100などの変な値になっていたのを直しました。

 

# $ + ver0.45でのバグとり

・まだ読み込んでいない状態で、ズームするとエラーで止まっていたバグをとりました。

 

・進捗状況フォームで、bitの深さが1bitや4bitのファイルを表示した時にも、8bitと嘘の表示になっていました。

 

・ファイラーのパラメーターなどを指定するダイアログの位置を記憶していなかったバグを取りました。

 

+ # $ ver0.43でのバグとり

・pag1teto.iniなど初期化ファイルへの書き込み中にKernelで一般保護違反が出るというバグがかなり前からありました。他のプログラムでもこの問題が希に起こって困っていたのですが、DDJJ94/10に、その原因がVB2.0Jのバグにあることがわかりました。ということで、バグに対処する様にプログラムを変更しました。

 

これによって、508*768のサイズのビットマップで一般保護違反が出るというこちらでは再現できなかった以前のバグが解消されたというレポートがありました。

 

・バグの原因になっている可能性があると言って、適応的パレット235色モードも使えなくしていましたが、これは関係がなさそうなので、可能にしました。

 

・ファイルサイズが13.8MBを越えると異常になる可能性がありました。これを改善したので、画像サイズの制限は、32K*32Kまでになりました。

 

・Windows用のパレットが0の時に、適応的パレット数の制限が効かないバグを取りました。

 

 

 

+ # $ ver0.41でのバグとり

「[最高16M色中8K色]や[最高16M色中32K]のモードで使われている色がそれ以下の画像を変換した場合に、最も明るい色が黄色くなっていたバグを取りました。」とver0.39を出したのですが、その日の内に直っていないというバグレポートが何通も届きました。確認せずに出したのかなと思ったのですが、きれいに変換できたのを見た記憶がありました。で変更した内容を思い返して見て、バグが直ってない理由に思い当たりました。

 

間抜けなことをしていました。もともとのバグの原因は、本来は、1枚変換する前に毎回初期化しなければならない配列なのにも関らず、DLLロード時に自動的に初期化されるはずだから大丈夫と思ったことでした。そして、ver0.39では、自動的に初期化されるにも関らず、DLLロード時にわざわざ初期化して、バグを取ったつもりでいました。

 

実行して確認はしたのですが、問題だった画像だけを変換して見ただけでした。いっぱい色が使ってある画像を変換した後に、32K色以下の画像を変換すると、問題が出るわけで、最初に起動してから、問題の画像だけを変換している分には初期化しなくてもバグは見えてこないのでした。

 

それから、ver0.39での、最適化パレットの数を234色に制限してしまうという、念のための消極的な変更は、濡れ衣だったのかも知れません。そのうち根本的に直します。

 

+ # $ ver0.39でのバグとり

[最高16M色中8K色]や[最高16M色中32K]のモードで使われている色がそれ以下の画像を変換した場合に最も明るい色が黄色くなっていたバグを取りました。かなり昔からのバグだった様です。

 

最適化パレットの数として、235色または、236色を指定した場合に、希に黒い点が出ることがまだあったようです。さらにこれは、一般保護違反の原因にもなっていた様です。根本的な解決は大変なので、とりあえず、235,236が指定されても、234色と解釈する様に変更しました。

 

デバッグ用のprintf文が残っていました。VC++だとコンパイラを通らないのですが、BC++3.1ではコンパイルできてしまいます。そして、Windowsを終了した段階でDOS画面にデバッグ行が出てきます。果たして、これだけのことなのか、それとも、他に副作用があるのかは、わかりません。

 

 

 

+ # $ ver0.36でのバグとり

{最高32K色中32K色、または、最高256K色中256K色}でなおかつ{ボロノイ分割、または、擬似階調表示あり}のオプションの組み合わせの時に、色がめちゃくちゃの画像になってしまっていました。初めてのユーザーで、pag1teto.iniがない状態では、この条件に合致してしまいます。

 

+ # $ ver0.34でのバグとり

K 共分散行列が、単位行列の定数倍になる場合の処理が抜けていたのを直しました。

K 第一主成分で分割の時、計算誤差で希に正しく分岐しない可能性があったのを直しました。

 

# $ バグとり履歴 その2

 

ver0.30 bug30

ver0.28 bug28

ver0.27 bug27

ver0.26 bug26

ver0.25 bug25

ver0.24 bug24

ver0.23 bug23

ver0.22 bug22

ver0.21 bug21

ver0.20 bug20

ver0.19 bug19

ver0.16 bug16

ver0.15 bug15

ver0.12 bug12

ver0.11 bug11

 

 

+ # $ ver0.30でのバグとり

ver0.29は、nifty版なのに、非nifty版と同じになっていました。

最適化パレットが236色の時に、画像によって、黒が混じるバグがありました。

 

+ # $ ver0.28でのバグとり

pag1wini.dllにバグがありました。[32K色中32K色]もしくは、[16M色中8K色]のオプションが選択されていて、なおかつ、[ボロノイ分割]や、[擬似階調表示あり]を選択していると、ボロノイ分割の前処理を実行中に一般保護違反でエラーが出てしまいます。

 

VC++でも動くようにしようとしたときに、VC++には、farreallocが無かったので、WindowsAPIでK メモリを確保したのですが、その方法が良くなかった様です。それで、プログラムを直したのですが、pag1win.dllの方だけコンパイルし直して、pag1wini.dllの方はバグのあるまま忘れてしまっていました。

 

+ # $ ver0.27でのバグとり

元々、16bitの精度で動いていたのを、ver0.24で32bitの精度にして、それでは遅いので、ver0.25で、2つのDLLに分けた際に、int とunsigned intを間違えて、実用的な時間で変換できるオプションの時に、画質が悪くなっていました。

 

さらに、BC++3.1でコンパイルした時の最適化オプションで速度による最適化を選んでいたのですが、そのせいで、ドキュメントに書いた通りの画質が達成できていませんでした。Huge配列の高速化の時にWordアラインメントを指定していないと64KBの境目にかかった配列の要素が変になるというのに気付いてなかったようです。

 

 

+ # $ ver0.26でのバグとり

単に非niftyバージョンですが、アンケートボタンを押すとエラーで止まっていたのを直しました。

 

+ # $ ver0.25でのバグ取り

ver0.24は、0で割っていました。致命的なバグなのですが、このバグfloat_errは、VBとコプロ付きのPC-9801の組み合わせでは検出できないのでした。

 

+ # $ ver0.24でのバグ取り

・ルートディレクトリの下にディレクトリを作れなかったバグ

・色数が少なくて、白っぽくて大きなビットマップが、灰色になるバグ

・3次のボロノイ細分の時の点々のバグ

・コンパイル時のオプションが変だった

・230〜236色パレット時に極端に画質が落ちる場合があったバグ

 

# $ + ver0.23でのバグ取り

ver0.22のDOS版です。ファイル関係でバグがあったのですが、忘れました。

 

# $ + ver0.22でのバグ取り

・WritePrivateProfileStringでエラーが出ていたバグをとりました。(多分)

・ビットマップのセーブ時にディレクトリを指定できなかったバグを直しました。

・適応的パレットの数として0を指定するとエラーが出ていたバグを取りました。

・複数の状況で時間が10倍以上遅くなっていたのを直しました。しかし、そのせいで一般的な画像で数秒遅くなりました。

・・使われている色数がの少ない画像の時に遅くなっていたのを直しました。例えば、256色以下の入力画像の時は普通の10倍位かかっていました。

・・以前の、16bit色画像の時に遅くなるという問題がver0.21になって復活していました。でも、これを取ったせいで全体の速度が遅くなってしまいました。

・・最高256階調オプションの時に、2度目から時間が遅くなるというバグがver0.21以降ありました。このバグの原因を探すのには苦労しました。これだけのせいでアップロードが2日遅れました。

 

 

バグ取り履歴bug_rireki

 

# $ + ver0.21でのバグ取り

最大256階調のパレットの深さを選択しているときに、32K色のファイルを入力すると時間がかかりすぎるという問題を解決した時に、やや問題があって、本来はもっと深いパレットが可能なのに、早めに32K色画像だろうと判断してしまうという場合がありました。ver0.21では、これを調整しました。本当に32K色画像かどうかは全部をスキャンするしかないのですが、それをやるのは、スマートではない気がするので、やっていません。ということで、完璧な解決ではありません。再度、今度は、32K色でも構わないK アルゴリズムに変えると言うような、もう少し本質的な改善策を取るかも知れません。

 

ver0.20では、デフォルトで256色になっていました。プログラムはVBで表示しているので、236色のパレットしか画像に割り当てることができないので、256色で作ったビットマップでは、一部で階調が減って、マッハバンドが見えていました。ver0.21では、デフォルトでは、236色にしました。

 

# $ + ver0.20でのバグ取り

・ver0.18で、一般保護違反(GPfault)が出ていたのを、ver0.19では、ハンドルもスワップすることによって避けたつもりだったのですが、気のせいでした。Windowsにしたせいで、バグが顕在化したので、Windows関係の問題ばかり追及していたのですが、実は、配列サイズより1多い所をアクセスしていました。

・元画像に64K色のファイルを指定して、最大256階調オプションを選択しているときに、変換に500倍の時間がかかって、ハング同然の状態になるというバグを取りました。なお、いったん、64K色に落ちたものを256色に変換してもあまり良い画質は達成されません。

・変換の度に行うべき初期化を、最初の1度しか行っていないために、最大256階調オプションを選択している時に、変換の度に画質が悪くなっていくというバグを取りました。

・temp.bmpに大きなファイルが残っている状態で変換すると、ファイルサイズが正しくないビットマップファイルができていたバグも取りました。

 

 

# $ + ver0.19でのバグ取り

・ver0.18で、ポインターをスワップしていた部分があったのですが、Windows上では、ハンドルとポインターの対応が壊れる状態になっていた様です。

・また、DLL内でエラーが出てメッセージも出さずに終了してしまうという問題もありましたが、これも取りました。

・ファイル選択のダイアログでキャンセルを選択すると終了してしまっていたバグも取りました。

・Windows上のソフトとしては、まだまだ無愛想なのですが、とりあえず、致命的なバグだけを取ったバージョンです。

 

# $ + ver0.16

ver0.15では、パレットの精度を上げたにも関わらず、4096色当時のままintになっている部分があって、それをlongに直しました。

 

# $ + ver0.15

ver0.14では、/P###オプションを省略した場合、灰色の画像を出力していました。このバグを取りました。

 

# $ + ver0.12

ver0.11では、出力先のファイルネームを省略した場合、変換元のフルカラービットマップファイルを壊してしまうというバグがありました。ver0.12で取りました。

 

# $ + ver0.11

ver0.10では、バッファーサイズを32KBから64KBに変更したときに、intからunsigned intに直すのを忘れている所があって、64KB毎の繰返し画像になってしまっていました。ver0.11で取りました。

pag1teto_help

Google
Web www.PAG1U.net

seo
Tibet Support Network Japan(TSNJ)チベット・サポート・ネットワーク・ジャパン チベットの今日は、明日の台湾、あさっての日本ということで心配なので、リンクだけ貼っておきます。

[HOME]  (C) MATSUOKA , Hajime