イメージボックスに1bppビットマップとしてバイナリファイルをロードしています(ScrollableControlに継承された画像をズームしてパンする機能を備えた私のpicturebox)。私は小さなもので問題はありません。ファイルからバイト配列を読み込み、ビットマップに変換します:は、C#で非常に大きな1bppビットマップを表示します。
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format1bppIndexed);
BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.WriteOnly, bmp.PixelFormat);
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
bmp.UnlockBits(bmpData);
this.Image = bmp;
大きなファイルに関しては、私の問題が始まります。私は20GB以上のサイズのファイルを扱いたい。明らかに私は一度にすべてのファイルをメモリに読み込むことができませんし、イメージボックスに表示する必要があるファイルの一部を読み込む必要があります。私は私の問題を緩和するツール/方法があることを知りたいですか?
[this](http://stackoverflow.com/questions/15512392/how-to-insert-part-of-image-into-picturebox)のようなものですか? –
すべてのピクセルを4Kの画面に表示しても、100MB未満です。 20GBファイルから表示するピクセルを選択します。 – Tommy
@Tommyこれはまさに私があなたを助けてくれることでした。スクロールイベントが発生すると、ファイルの一部を読み込んでImageboxに表示する必要があります。 – elham