すみません 勘違いしていました
ImageFileModule_dishの中を以下に変えたらAndroid実機でも正常にサイズが取得出来ました
#module ImageFileModule_dish
/*
#deffunc _ImgF_LoadAndSigCheck str n, array d, var l ;ファイルのフォーマットチェック&メモリにロード
exist n
l = strsize
if l < 0{
l = 0
return 0 ;げげげ
}
sdim d, l+1
bload n, d, l ;読み込み
if wpeek(d, 0) = $00004D42 : return 1 ;BITMAP $42='B' , $4D='M'
if wpeek(d, 0) = $0000D8FF : return 2 ;JPEG $FF , $D8
if lpeek(d, 0) = $38464947 : return 3 ;GIF $47='G' , $49='I' , $46='F' , $38='8'
if (lpeek(d, 0) = $474E5089) & (lpeek(d, 4) = $0A1A0A0D) : return 4 ;PNG
;$89 , $50='P' , $4E='N' , $47='G' , $0D , $0A , $1A , $0A
return 0
;*/
#deffunc ImgF_GetPicSize str n, var x, var y, local b
dim ib,10 ;フォーマットのタイプとデータ総量を代ニューする。
exist n
l = strsize
if l < 0{
l = 0
return 0 ;げげげ
}
ib(1) = l
sdim b, l+1
bload n, b, l ;読み込み
if wpeek(b, 0) = $00004D42 : ib(0) = 1 ;BITMAP $42='B' , $4D='M'
if wpeek(b, 0) = $0000D8FF : ib(0) = 2 ;JPEG $FF , $D8
if lpeek(b, 0) = $38464947 : ib(0) = 3 ;GIF $47='G' , $49='I' , $46='F' , $38='8'
if (lpeek(b, 0) = $474E5089) & (lpeek(b, 4) = $0A1A0A0D) : ib(0) = 4
x = 0 : y = 0 ;とりあえずぬるぽ。…じゃなくて0を代入
if ib == 1 {
if lpeek(b, 14) == 40 : x = lpeek(b, 18) : y =lpeek(b, 22) ;Windows形式
}
if ib == 2 {
ib(2) = 2 ;offset
repeat
if ib(1) <= ib(2) : break ;アプリクラッシャー(破損ファイル)対策
if peek(b, ib(2)) != $FF { ;Nikonクラッシャー対策
ib(2) ++ ;nicoD700nicoのバグ(仕様?)でアプリが堕ちたょ...回避策
continue ;Markerらしきところまでスキップ
}
ib(3) = peek(b, ib(2) + 1)
if ib(3) == $D9 : break ;ファイル終了のお知らせ
if ib(3) == $C0 | ib(3) == $C2 { ;目的地発見(ハフマンのベースラインかプログレッシブのMarker)
ib(4) = wpeek(b, ib(2) + 7), wpeek(b, ib(2) + 5) ;トラップ発動(高さが先)
x = (ib(4) >> 8 & $00FF) | (ib(4) << 8 & $FF00)
y = (ib(5) >> 8 & $00FF) | (ib(5) << 8 & $FF00)
break
}
ib(4) = wpeek(b, ib(2) + 2) ;それ以外の何かの場合
ib(5) = (ib(4) >> 8 & $00FF) | (ib(4) << 8 & $FF00)
ib(2) += ib(5) + 2
loop
}
if ib == 3 : x = wpeek(b, 6) : y = wpeek(b, 8)
if ib == 4 {
if lpeek(b, 12) == $52444849 { ;$49='I' , $48='H' , $44='D' , $52='R' IHDR(ヘッダー)であってしかるべき
ib(2) = lpeek(b, 16), lpeek(b, 20) ;ビッグエンディアンだなんてorz...
x = (ib(2) >> 24 & $FF) | (ib(2) >> 8 & $FF00) | (ib(2) << 8 & $FF0000) | (ib(2) << 24 & $FF000000)
y = (ib(3) >> 24 & $FF) | (ib(3) >> 8 & $FF00) | (ib(3) << 8 & $FF0000) | (ib(3) << 24 & $FF000000)
}
}
return ib
/*
#defcfunc ImgF_GetFormat str n, local b
_ImgF_LoadAndSigCheck n, b, ib
return stat
;*/
#global
モジュール内でファイルが読めないのではなく、
引数として渡した変数に目的のデータが入っていなかった、が正しいようです
#deffuncの変数の指定などにバグがありそうです