ERI Developer's BBS
  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
31 / 57 ツリー ←次へ | 前へ→

画像の縦横サイズ・・・ 脱力 02/6/21(金) 22:45
┗ Re:画像の縦横サイズ・・・ L.Entis 02/6/22(土) 1:11
 ┗ Re:画像の縦横サイズ・・・ 脱力 02/6/22(土) 22:01
  ┗ Re:画像の縦横サイズ・・・ L.Entis 02/6/24(月) 1:05

画像の縦横サイズ・・・
 脱力  - 02/6/21(金) 22:45 -

引用なし
パスワード
   こんにちは、脱力です
ERIファイルをバイナリで開いて、画像の縦横のサイズを取得しようと思ったのですが
なにやら、数字が逆から書き込まれているような・・・
0x0050 のはずが 0x0500 と書き込まれてます・・

ちょっと、構造体のメモリ内での扱いを知らないので
逆になって当たり前なのかもしれませんが・・・

ちょっと、DLL作成の時にファイルの縦横を取得する命令を
省いたので、直接ファイルから読み込もうと思って行き詰まってしまいました

まぁー、DLLに実装する予定ですが、この謎をもし説明できるのでしたら
教えてもらえるとうれしいです
<Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)@133.15.121.65>

Re:画像の縦横サイズ・・・
 L.Entis  - 02/6/22(土) 1:11 -

引用なし
パスワード
   ▼脱力さん:
>こんにちは、脱力です
>ERIファイルをバイナリで開いて、画像の縦横のサイズを取得しようと思ったのですが
>なにやら、数字が逆から書き込まれているような・・・
>0x0050 のはずが 0x0500 と書き込まれてます・・
>
>ちょっと、構造体のメモリ内での扱いを知らないので
>逆になって当たり前なのかもしれませんが・・・
>
>ちょっと、DLL作成の時にファイルの縦横を取得する命令を
>省いたので、直接ファイルから読み込もうと思って行き詰まってしまいました
>
>まぁー、DLLに実装する予定ですが、この謎をもし説明できるのでしたら
>教えてもらえるとうれしいです

エンディアンの都合でバイト順序が逆になっています。
インテルのCPUはリトルエンディアンですので、32ビットの整数 0x12345678 は、バイト単位では、0x78, 0x56, 0x34, 0x12 の順に格納されます。
<Mozilla/4.75 [ja] (Windows NT 5.0; U)@tokyo-fa2-32.kcom.ne.jp>

Re:画像の縦横サイズ・・・
 脱力  - 02/6/22(土) 22:01 -

引用なし
パスワード
   >インテルのCPUはリトルエンディアンですので、32ビットの整数 0x12345678 は、
>バイト単位では、0x78, 0x56, 0x34, 0x12 の順に格納されます。

インテル以外(MMXを含んでない場合なのかな)は上からなのでしょうか?
ちょっと、気になったので(^^;
<Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)@133.15.121.65>

Re:画像の縦横サイズ・・・
 L.Entis  - 02/6/24(月) 1:05 -

引用なし
パスワード
   ▼脱力さん:
>>インテルのCPUはリトルエンディアンですので、32ビットの整数 0x12345678 は、
>>バイト単位では、0x78, 0x56, 0x34, 0x12 の順に格納されます。
>
>インテル以外(MMXを含んでない場合なのかな)は上からなのでしょうか?
>ちょっと、気になったので(^^;

私的にはリトルエンディアン派なので(笑)、リトルエンディアンが最近は主流ではないかと思うのですが、インテルもPentium以降、ビッグエンディアンとリトルエンディアンを切り替えられるようになっていたと思います。ただ、互換性のため、普通リトルエンディアンしか使わないと思いますが。
PS2のプロセッサも両方使えたと思いますが、デフォルトはリトルエンディアンだったと思います。
一方、モトローラのプロセッサはビッグエンディアンです。X68000とかMacなどはビッグエンディアンです。

というわけで、エンディアンはプロセッサによってまちまちです。(^^;
486以降には、BSWAP というデータのエンディアンを変換する命令がありますので、アセンブラの場合、これを使うとデータの変換が簡単です。
C の場合、少々面倒ですけど…。
<Mozilla/4.75 [ja] (Windows NT 5.0; U)@tokyo-fa2-236.kcom.ne.jp>

  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
31 / 57 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
7920 C-BOARD v3.02 is not Free?