ホーム : 実験室 : BigPicture

BigPicture (2010/11/27)

 当プログラムはビットマップイメージとして作成できる画像の最大サイズを確認するためのテストプログラムです。以前carbonプログラムではバッファサイズが1GB、横幅が32767を超えるものは正常に処理できないことを確認しましたが、cocoaではどうか、64bitモードではどうかを確認したものです。  ピクセル数で指定された横幅、高さの画像エリアを確保して描画し、さらに画像ファイルとして保存できるかまで試しています。  動作環境はMacOS X 10.6 snow leopardです。10.6 SDKを使用しています。

確認できたこと

  • NSBitmapImageRepの作成
    • 32bitモードではバッファサイズが2GBを超えるような指定をするとnilを返す。それ以下では連続したバッファメモリが確保できないとファンクション内で異常終了する。1GB以下でも同じ。
    • 64bitモードでは、特に制限はないように見える。実装メモリが4GBのシステムでも2GB以上のサイズを処理できる。
  • CGImageDestinationRefによる書出し
    • 横幅或いは高さが65500ピクセルを超えるとnilを返す。(コンソールに65500以上は処理できないとメッセージが出る)
      65500の制限はjpegやtiffなどの画像形式によるもので、jpeg2000やpngではそれ以上の大きさでも大丈夫でした。ただしどんどん大きくしていくとQuartzの描画命令がおかしくなり出します。
    • 制限内であれば書出しはjpegでもtiffでも特に問題なく終了した。
    • 以上は32bitモード、64bitモードとも同じ。

 詳細は添付の「お読みください」を参照してください。

 ダウンロード BigPicture.zip (116 kB)

(C)Copyright 2010, Yoshiaki Katayanagi.