- ベストアンサー
Accessで画像プレビューに関する問題:ファイルサイズの制限と解決方法
- Access97&2000のVBAを使った画像プレビューで、ファイルサイズの制限が問題となっています。
- Windows95/98seでは約200KB、NTでは約700KBまでのファイルサイズ制限があり、メモリ不足やフリーズが発生します。
- ファイルサイズ制限をクリアする方法や、サブネットする方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>確かにWin2000&Access2000なら難なく2MBが開きます。 >NTは、1MB(仮想メモリをうまく使ってないみたい)。 ってことは、やっぱりOSに依存する問題なのでしょうか… 試しに手元のWin98(SP-1)+Access200(SP-2)でも実験してみました。 …おっと、こっちの環境だと大きな画像でエラーになるみたいですねぇ。 といっても、ハングするわけではなく、「この形式の画像はサポートされない」ってなトラップ可能なエラーになるみたいです。 エラーになる/ならないは、純粋に画像の大きさに依存するようです。1660x1660のデータはOK、1660x1670及びそれ以上のデータはNGでした。 同じ大きさ(1660x1660)で圧縮率を変えて114kと1006kのデータを作ってみましたが、両方ともOKでした。 エンコードをプログレッシブにして試してみましたが、やはりOKでした。 ちなみに、画像処理にはPaint Shop Pro7を使っています。(JPEGはいろいろな「方言」を認めているので、ひょっとしたら画像エディタによっては結果が変わってくるかも…) ってことで、もしOS依存の問題なのだとしたら、解決策はかなり限られてくると思います。 画像の大きさを小さくするってのが、多分、一番妥当な解決策だと思いますね。 力技で行くとすれば、画像をあらかじめ分割しておき、別々のイメージに(非表示で)読み込ませておく、で、APIを使って表示用のイメージに転送する。とか。(細かいところは聞かンといて下さい。こんな野蛮なことやったことないですから(笑)。) もしくはVBとかVCとか使って、でっかい画像表示用のActiveXコントロールを自作してしまうとか…(APIで云々するよりもこっちの方が楽そう。) MSに文句を言うと、そのうちに何とかなったりするかもしれないですが、過去の体験からすると、あんまり期待できないです。 あ☆(←ヒラメキのシルシ)、あらかじめ画像を左右に二分割しておいて、フォーム上にイメージコントロールを二つ並べて配置しておき、別々に読み込ませるっていうのはどうでしょうか。これなら案外うまくいくかもしれませんね。
その他の回答 (2)
- ARC
- ベストアンサー率46% (643/1383)
あ、それと、先ほどの3456x2592の画像を読み込んでる間は、他のアプリ(画像編集ソフト+IE約20枚+α)と合わせて400MB近いメモリを消費していたようです。(読み込み終了後は290MB) ですので、仮想メモリが使用するHDDの空きとかも、ある程度は確保しておかないといけないみたいですね。 サムネイルについては、別に縮小画像を用意しておいて、同じようにイメージに突っ込んでいけばいいのでは?
お礼
ありがとうございます。 確かにWin2000&Access2000なら難なく2MBが開きます。 NTは、1MB(仮想メモリをうまく使ってないみたい)。 しかし、Win98SE/95&Access2000では、やはり約200KB程度です。 これを、どーしてもWin95/98で使いたいのですが・・・ MEは、環境がないのでテストできませんでした。
- ARC
- ベストアンサー率46% (643/1383)
手持ちのAccess2000(SP-2)+Windows2000(SP-1)で、実験してみました。 試しに1728x1296のBMP画像(6.5MB)を読み込ませてみましたが、正常に読み込めました。 同画像をJpegに変換し、1MBの画像を得まして、それも読み込ませてみたんですが、そっちもOKでした。 容量ではなくてサイズの問題かとも思ったんで、3456x2592のJpegファイル(2.9MB)を用意して、それを読み込ませてみましたが、多少時間はかかったものの、正常に読み込めました。 というわけですのでとりあえず、OS、Accessともに最新のバージョンでは問題は生じないってことになると思います。 複数のOSで同じエラーが出るってことは、OSの問題もとりあえずは除外してもいいかもしれませんね。 ですので、考えられるエラーの原因は、 ○Jpegファイルが壊れている。 →別のグラフィックツールを使って保存しなおせば直るかも。 ○Accessの問題 →サービスパック/サービスリリースの適用で直るかも。 ってなところなんじゃないかなぁ。
お礼
うーん、私には難しいですね。画像を2分割考えときます。 ありがとうございました。