HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0821
名無し(A)ウィンドウの最大サイズはいくつですか?6未解決


名無し(A)

リンク

2014/8/21(Thu) 17:08:25|NO.64120

bufferの最大サイズ(or総ピクセル数)は一体いくつなのでしょうか?

私が適当にプログラムを組んで限りでは、
総ピクセル数(x*y)が2の28乗(268435456)以下にしないと、bufferに書き込むことが出来ませんでした。

もし、正確なサイズを知っている方がいたら、教えてください。



この記事に返信する


名無し(A)

リンク

2014/8/21(Thu) 17:13:31|NO.64121

誤字がありました。

私が適当にプログラムを組んで限りでは×
私が適当にプログラムを組んで調べた限りでは○



ぴょぴょ

リンク

2014/8/21(Thu) 18:16:05|NO.64125

この質問を突き詰めるとHSP内部の恐らくは
メモリ・デバイスコンテキストで作成できる最大サイズは?
と質問してるのと同じになると思います。

> bufferの最大サイズ(or総ピクセル数)は一体いくつなのでしょうか?
私は単純に搭載メモリ量に依存すると思ってますが…。
皆さんは、どう考えますか?
(こちらも同じ疑問を持ってますので)



Flat

リンク

2014/8/21(Thu) 18:38:34|NO.64127

BITMAPFILEHEADERの制約でバイト数4GiB弱
32Bitアプリの制約でバイト数4GiB弱
となるのかな?
あと縦幅や横幅にWORDが使われてると最大縦幅・横幅65535の制約が発生するかも。



名無し(A)

リンク

2014/8/21(Thu) 19:34:11|NO.64130

>Flatさん
試した所、確かに縦横65535以上でシステムエラーが発生しました。



そして、もう1度総ピクセル数の限界を調べてみたところ、総ピクセル数を2の28乗(268435456)以上にしても大丈夫でした。
その時使用したプログラムは以下の通りです。もし、プログラムに間違いがあったらご指摘お願いしますm(__)m

x=17944 buffer 1,x,x boxf pget 0,0 if ginfo_r=255{ Dialog "書き込み失敗\n総ピクセル数:"+(x*x)+"\nデータ量:"+((double(x*x)*3.0)/1048576.0)+"MB" }else{ Dialog "書き込み成功\n総ピクセル数:"+(x*x)+"\nデータ量:"+((double(x*x)*3.0)/1048576.0)+"MB" }



skyblue

リンク

2014/8/22(Fri) 09:47:22|NO.64139

自分の環境ではx=24316
デバッグウィンドウ付きではx=23017で失敗しました。
そのときによって変わるとは言え大体これぐらいが目安でいいのではないでしょうか?



名無し(A)

リンク

2014/8/22(Fri) 10:50:13|NO.64141

>skyblueさん
検証ありがとうございます。

もしや、と思いもう1度先ほど貼ったプログラムを実行してみたところ、x=18500程度でも書き込みに成功しました。
なので、その時のPCの状況(メモリ使用率等)で変わるかもしれませんね・・・



ONION software Copyright 1997-2023(c) All rights reserved.