追加テスト ( No.11 ) |
- 名前:GMO 日時:2014/11/23 02:38
管理人さん
記事4006で記載したLoadGraphテストがSwordBout(以下SB)とは無関係のテストとはならないことに
あとから気づき、まったく無関係のJPEGファイルを最新のライブラリで表示テストを行ったところ
問題なく表示できました。
この結果が出たため、使用してるSBのファイルを疑い、ダウンロードをし直し、ファイルを取り直していくつか
テストを行いました。
ライブラリは最新のライブラリ(SBは再ダウンロードしたSB付属のもの、LoadGraphテストは個別ダウンロードのもの)です。
@LoadGraphテスト
SB無関係のJPEGファイル → 表示
再DLしたSB付属goblin.jpg → 表示失敗
再DLしたSB付属goblin.jpgをペイントで開いて上書き保存したもの → 表示
A再DLしたSBをVC++2010expressにてビルド&実行テスト
特に何もせず実行 → エラーで終了
Characterフォルダ配下にあるJPEGファイルをすべてペイントで開いて上書き保存して実行 → 問題なく動作
と、このような結果となりました。
エラーが発生するJPEGファイルと発生しないJPGファイルの違いは・・・よくわかりませんでした。
上書き保存したものについても、ペイントの圧縮率規定値の影響でファイルサイズが小さくなった位しか
元データとの違いは(知識不足もあり)よくわかりません・・
また、エラーなしで実行するためにキャラクターデータのJPEGファイルはすべてペイント上書きする必要がありましたが、
ステージデータのJPEGファイルは何もしなくてもエラーとはならないようです。
|
jpegファイルの読み込みに失敗する件について調べてみました ( No.12 ) |
- 名前:わしし 日時:2014/11/23 02:36
いつもお世話になっております
GMOさんが質問しているjpegファイルの読み込みに失敗する件ですが、私もあるモデルの
jpegのテクスチャーの読み込みに失敗しており ちょうどGMOさんが質問していたので傍観して
おりましたが、こちらでも色々テストしてみたので報告いたします
DXLib3.13だとWindows7でVisualStudio2010でビルドした場合もLoadGraphによるjpegファイルの
読み込みで失敗しております
Win32/64,Release/Debug,マルチバイト文字コード/UNICODEの全てについて
こちらで見つけたモデルのテクスチャーのjpegファイルとSwordBoutのモデルのjpegファイル
でLoadGraphによる読み込み、表示を行ってみましたましたが3.13だと全て表示できませんでした
いずれもDXLib 3.12eでは問題なく表示されることを確認しております
また、こちらでlibjpegを VisualStudio2010でビルドしたlibjpeg(9a)と差し替えてテストした
ところWin32/64,Release/Debug,マルチバイト文字コード/UNICODEの全てにおいて問題なく
表示されるようになりました
さらにVisualStudio2013でビルド(ツールセットは2010 v100に変更)したlibjpeg(9a)と差し替え
てテストプログラムをVisualStudio2010でビルドしても問題ありませんでした
なお、こちらでビルドしたlibjpegは配布されているものよりサイズが1.2MBほどと大きくなって
います(コンパイルオプション等の違いによるものかな?)
以上 報告でした
|
Re: jpegファイル読み込みエラー ( No.13 ) |
- 名前:管理人 日時:2014/11/23 02:39
検証していただきありがとうございます
goblin.jpg はBTJ32というフリーソフトを使用して無圧縮形式からjpeg形式に変換したのですが、
ペイントで保存する場合の jpegファイルとは少し内部形式が異なるのかもしれません
> また、エラーなしで実行するためにキャラクターデータのJPEGファイルはすべてペイント上書きする必要がありましたが、
> ステージデータのJPEGファイルは何もしなくてもエラーとはならないようです。
ステージデータの jpegファイルはステージモデルを作成された方から頂いた jpegファイルそのままなので、
BTJ32で私がコンバートした jpegファイルのみエラーが発生しているようです・・・
そして、わししさんの VisualStudio2010 でビルドした libjpeg では問題なく読み込めたとのご検証結果も踏まえて考えると、
DXライブラリに添付されている libjpeg.lib は VisualC++6.0 でコンパイルしたものなので、新しい VisualC++ で
コンパイルすればGMOさんやわししさんの環境でも正常に読み込めるようになりそうです
というわけで、VisualStudio2005 から VisualStudio2013 までの 5バージョンでコンパイルした libjpeg.lib と、
おまけで VisualC++6.0 のコンパイル設定を少し変更したものを作成してみました
https://dxlib.xsrv.jp/temp/libjpegTest.zip
VisualC++6.0 から VisualStudio2005 の間には VisualC++.NET2002 と VisualC++.NET2003 があるので
厳密なチェックにはなりませんが、よろしければどのバージョンでコンパイルした libjpeg.lib から
正常に読み込めるかお試しいただけないでしょうか? m(_ _;m
> わししさん
> なお、こちらでビルドしたlibjpegは配布されているものよりサイズが1.2MBほどと大きくなって
> います(コンパイルオプション等の違いによるものかな?)
恐らくデバッグ情報だと思います、DXライブラリはデバッグ情報を「無し」に設定しているので・・・
|
Re: jpegファイル読み込みエラー ( No.14 ) |
- 名前:GMO 日時:2014/11/23 08:29
管理人さん
libjpegTest.zipにVC++6.0で作成したライブラリーが見当たりません。
また、検証方法は最新のdxライブラリーの中のlibjpeg.libをすげ替えてjpeg表示テストを行うという形で問題ありませんよね?
|
Re: jpegファイル読み込みエラー ( No.15 ) |
- 名前:管理人 日時:2014/11/23 08:27
すみません、VC++6.0で作成したlibjpeg.libが含めたzipファイルを上げていませんでした
申し訳ありません、よろしければもう一度ダウンロードしてください m(_ _;m
https://dxlib.xsrv.jp/temp/libjpegTest.zip
> また、検証方法は最新のdxライブラリーの中のlibjpeg.libをすげ替えてjpeg表示テストを行うという形で問題ありませんでしょうか?
はい、上書きしてリビルドしてください。
|
Re: jpegファイル読み込みエラー ( No.16 ) |
- 名前:GMO 日時:2014/11/23 08:32
あっと記事修正中に管理人さんから返信がw
新しいファイルダウンロードします。
|
Re: jpegファイル読み込みエラー ( No.17 ) |
- 名前:GMO 日時:2014/11/23 13:39
管理人さん
検証の結果が出ましたので報告します。
debug、release両方とも同様の結果です。
テスト結果がすべて失敗だとテスト環境が不安になるため、
3.12eよりlibjpeg.libを取り出し、3.13に上書きしたテストも追加してます。
3.12eのlibjpeg 表示成功
vc6.0 表示失敗
2005 表示失敗
2008 表示失敗
2010 表示失敗
2012 ビルド失敗
2013 ビルド失敗
|
追加情報 ( No.18 ) |
- 名前:GMO 日時:2014/11/23 20:10
管理人さん
こちらでBTJ32をダウンロードし、いくつか原因究明に役立ちそうなテスト結果を得られたので報告します。
表示ができなかったgoblin.jpegをBTJ32を用いて上書き保存をし、
BTJ32の設定の差異で、テストプログラムで表示できる場合とできない場合があるかどうかを調べました。
結果、BTJ32のプログレッシブのチェックボタンがONの状態で保存すると、バージョン3.13のテストプログラムでは表示できませんでした。
この結果を受けて、自前でペイント作成のJPEGファイルを作り、BTJ32にてプログレッシブで上書き保存したところ、ピクセルサイズが小さいときは表示されましたが、
ピクセルサイズをgoblin.jpegと同等にした場合は、
表示されませんでした。
どれくらいのピクセルサイズの大きさから表示されなくなるのかはまだつかめてませんが、取り急ぎ報告します。
追記:
表示する/されないの境目を大体で調べてみたところ、560×560のピクセルサイズだと表示され、561×561だと表示されなかったので、
凡そこの周辺だと思います。
このテストで気になった点として、表示されない状況のときはテストプログラムの動作が不安定で、
実行時、 LoadGraphでフリーズすることが何度もありました。
(真っ白のJPEGファイルを読み込んでるときに多かったです。たまたまかもしれませんが・・)
以上です。
|
Re: jpegファイル読み込みエラー ( No.19 ) |
- 名前:わしし 日時:2014/11/23 21:21
管理人さんの方でビルドされたlibjpegで私の方で検証してみた結果を報告します
まず LoadGraphで画像を表示するテストアプリのビルドですが 試せるだけ試してみました
テストプログラムのビルド可否(ビルド環境OS:Server 2012R2 )
ビルド libJpegのビルド環境
環境 3.13付属 VC6 VS2005 VS2008 VS2010 VS2012 VS2013
VS2005 ○ ○ ○ × × × ×
VS2008 ○ ○ ○ ○ ○ × ×
VS2010 ○ ○ ○ ○ ○ × ×
VS2012 ○ ○ ○ ○ ○ ○ ○
VS2013 ○ ○ ○ ○ ○ ○ ○
次にビルドしたテストアプリで正常に表示できるかどうかのテスト結果です
実行(正常表示)可否
ビルド 実行環境OS (○:ビルドできたもの全てで正常表示)
環境 Xp Vista Win7 Win8.1 Win10TP Server2012R2
VS2005 ○ × ○ ○ ○ ○
VS2008 ○ × × × × ○
VS2010 ○ × × × × ○
VS2012 ×※ ○ ○ ○ ○ ○
VS2013 ×※ ○ ○ ○ ○ ○
※:VS2012または2013でビルドしたものは不明なアプリケーションとなって実行できませんでした
(ツールセットを_Xpの物でもビルドしてみましたが同様で実行不能でした)
元々私の開発環境がServer2012R2でして、私のところでは表示されるのに他のところでは表示されない
またはプログラムが異常終了するとの報告があったため調べておりました
なぜかServer2012R2では全て表示可能な様です
ビルド環境のため?という疑念があったため、新規に作ったOSのみの環境で試しても結果は同じでした
こちらではこのような結果になりました
なお、現在こちらでビルドしたlibjpegについても調査中ですので後ほど結果を報告いたします
以上
|
Re: jpegファイル読み込みエラー ( No.20 ) |
- 名前:わしし 日時:2014/11/23 22:07
私の方でビルドしたlibjpegでの検証が終わりましたので報告します
テストプログラムのビルド可否(ビルド環境OS:Server 2012R2 )
ビルド libJpegのビルド環境
環境 VS2005 VS2008 VS2010 VS2012 VS2013
VS2005 ○ × × ○ ○
VS2008 △※ ○ × ○ ○
VS2010 △※ △※ ○ ○ ○
VS2012 △※ △※ △※ ○ ○
VS2013 △※ △※ △※ ○ ○
※:DebugはビルドできたがReleaseがリンクエラーでビルドできない
実行(正常表示)可否
ビルド 実行環境OS (○:ビルドできたもの全てで正常表示)
環境 Xp Vista Win7 Win8.1 Win10TP Server2012R2
VS2005 ○ △※2 ○ ○ ○ ○
VS2008 ○ △※2 △※2 △※2 △※2 ○
VS2010 ○ △※2 △※2 △※2 △※2 ○
VS2012 ×※1 ○ ○ ○ ○ ○
VS2013 ×※1 ○ ○ ○ ○ ○
※1:VS2012または2013でビルドしたものは不明なアプリケーションとなって実行できませんでした
(ツールセットを_Xpの物でもビルドしみましたが同様で実行不能でした)
※2:libjpegをVS2012,VS2013でビルドしたもののみ表示されず(Debug/Releaseの両方)
私の環境ではこの様な結果になりました
以上
|
Re: jpegファイル読み込みエラー ( No.21 ) |
- 名前:管理人 日時:2014/11/24 11:47
お試しいただきありがとうございます
No.19 の「実行(正常表示)可否」についてですが「×」の部分は
「ビルドできたもの全てで正常に表示されなかった」という解釈で良いのでしょうか?
ともあれ、VisualStudio のみならず、BorlandC++ や GCC 版でも同様の現象が発生している可能性もあるので
バージョンを 9a から 9 に戻した方が良い気がしてきました・・・
|
Re: jpegファイル読み込みエラー ( No.22 ) |
- 名前:わしし 日時:2014/11/24 13:42
ご質問の
>No.19 の「実行(正常表示)可否」についてですが「×」の部分は
>「ビルドできたもの全てで正常に表示されなかった」という解釈で良いのでしょうか?
につきましては、その通りでした
なお、こちらで表示できないことを確認したjpegファイルは
Adobe Photoshop Elements 5.0 Windows で作られた物のようで
画像サイズが512x512 解像度が縦横とも72dpi 24bitカラー
ファイルサイズ 40.6 KB (41,670 バイト) の物でした
こちらもペイントで一度読み込み上書き保存すると読み込めるようになります
また保存しなおすとファイルサイズが56.5 KB (57,913 バイト)に増えています
プロパティでみえる情報については元のファイルと変わっていませんでした
以上
|
Re: jpegファイル読み込みエラー ( No.23 ) |
- 名前:管理人 日時:2014/11/25 01:24
ご返答ありがとうございます
ほぼ私の中でバージョン9に戻すことが確定しているのですが、よろしければバージョン9であれば
VisualC++6.0版( DXライブラリの Ver3.12e に同梱されている libjpeg.lib )が全ての環境で
「実行(正常表示)可否」が○になるか教えて頂けないでしょうか?
あと、バージョン9に戻す場合はVisualC++6.0版を配布する予定ですが、もしその他のVSでビルドした
バージョン9のlibjpeg.libもご必要でしたら、こちらにアップしましたのでお使いください m(_ _)m
https://dxlib.xsrv.jp/temp/libjpeg9Test.zip
> なお、こちらで表示できないことを確認したjpegファイルは
> Adobe Photoshop Elements 5.0 Windows で作られた物のようで
> 画像サイズが512x512 解像度が縦横とも72dpi 24bitカラー
> ファイルサイズ 40.6 KB (41,670 バイト) の物でした
>
> こちらもペイントで一度読み込み上書き保存すると読み込めるようになります
> また保存しなおすとファイルサイズが56.5 KB (57,913 バイト)に増えています
> プロパティでみえる情報については元のファイルと変わっていませんでした
サイズが異なるのはペイントで再圧縮しているからだと思います
読み込めないのは内部の圧縮率以外の設定が異なる為だと思います、
ただ、設定が異なってもファイルが正常であれば読み込めないとおかしいのですが・・・
( 現に VS のバージョンによっては成功していますし )
今後リリースされるバージョンで直ると良いのですが・・・ (- -;
|
Re: jpegファイル読み込みエラー ( No.24 ) |
- 名前:わしし 日時:2014/11/25 02:26
ご質問の件の回答です
>ほぼ私の中でバージョン9に戻すことが確定しているのですが、よろしければバージョン9であれば
>VisualC++6.0版( DXライブラリの Ver3.12e に同梱されている libjpeg.lib )が全ての環境で
>「実行(正常表示)可否」が○になるか教えて頂けないでしょうか?
DXライブラリの Ver3.12e に同梱されている libjpeg.lib では
先にあげたVisualStudioすべてでjpeg表示のテストプログラムのビルドに成功しており
実行はXpでのVisualstudio2012,2013でビルドしたものが不明なアプリケーションとなって
実行できないのを除いて各OSで正常に表示できております
以上です
|
Re: jpegファイル読み込みエラー ( No.25 ) |
- 名前:GMO 日時:2014/11/25 09:42
自分の環境では、
・プログレッシブJPEGである(BTJ32に関係なくネットで拾った適当なJPEGでも現象が出た)
・上記JPEGファイルが一定量以上の画像サイズである
の二つの条件が揃って問題の現象が起きました。
ペイント保存して読み込めるようになるのは
プログレッシブ設定がとれて普通のJPEG(ベースラインと呼ぶらしい)なるからだと思います。
↓ここの判定ツールで確認できます。
ht tp ://limetarte.net/if_software/profile.cgi?_v=1346751019&tpl=view2
今現象が起きてない環境についても、
プログレッシブJPEGの画像サイズを大きくしたら同じような状況になる可能性はあるとは思います。
(スイマセン、他の環境で試せないので脅かすだけで・・)
仮にそうだとしても、ゲームで使用するような画像サイズよりもとんでもなく大きい画像サイズのときに
「3.12eで表示3.13では表示失敗」って現象になるかもしれませんが・・
|
Re: jpegファイル読み込みエラー ( No.26 ) |
- 名前:管理人 日時:2014/11/28 00:30
> わししさん
ご返答ありがとうございます
安心してバージョン9のVC6.0版に戻せます
> GMOさん
ご情報ありがとうございます
確かに goblin.jpeg はプログレッシブで保存しました
OSやビルドするVSのバージョンが異なるだけで結果が変わるとなると、
C言語の仕様できっちり定義されていないコンパイラ依存となっていそうな
CPUの浮動小数点数に関する動作の設定が怪しいですが、同じ条件でも9では問題なく動作していたのに
9aで何故正常に動作しなくなったのかは謎です
9と9aのソースの違いを詳しく調べれば原因が分かりそうですが、手元に不具合が再現する環境が無いのと、
苦労して原因を突き止めても次のバージョンであっさり直っている可能性もあるので、
とりあえず安定している9に戻そうと思います
|
Re: jpegファイル読み込みエラー ( No.27 ) |
- 名前:管理人 日時:2014/11/29 14:18
libjpeg.lib のバージョンを9に戻しました
既にバージョン9の libjpeg.lib をお使いかと思いますが、
もしご必要でしたらダウンロードしてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
|
Re: jpegファイル読み込みエラー ( No.28 ) |
- 名前:GMO 日時:2014/11/30 19:43
管理人さん
ご対応ありがとうございます。
新バージョンでビルドしたSwordBoutおよび検証で使用したテストプログラムにて、
問題の事象は発生しないことを確認しました。
|
Re: jpegファイル読み込みエラー ( No.29 ) |
- 名前:管理人 日時:2014/11/30 21:43
お試しいただきありがとうございます
長い間検証にお付き合いいただきありがとうございました m(_ _;m
|
Re: jpegファイル読み込みエラー ( No.30 ) |
- 名前:GMO(解決) 日時:2014/12/07 20:12
解決とさせていただきます。
|