Stop saving temporary images or writing debug-only conversion code. Inspect C# image variables directly while stopped at a breakpoint.
Raw Buffer Visualizer is an Image Watch style debugger tool for C# machine-vision developers. It combines a C# image debugger, OpenCvSharp and Emgu CV visualizer, typed image collection visualizer, IntPtr image viewer, and raw image buffer inspector directly inside Visual Studio.

One-Minute Quick Start
- Install the extension and restart Visual Studio.
- Start debugging and stop where an image variable is alive.
- Click the visualizer icon for an image, typed list, dictionary, or supported array in DataTip, Watch, Locals, or Autos.
- Select a thumbnail added to the docked Raw Buffer Visualizer window.
- Zoom, pan, and inspect X/Y, GV or RGB values, raw bytes, stride, and pixel format.
Why Raw Buffer Visualizer?
| Capability |
Typical basic Mat viewer |
Raw Buffer Visualizer |
OpenCvSharp Mat |
Common |
Supported |
Emgu CV Mat and System.Drawing.Bitmap |
Varies |
Supported |
Typed List<TImage> and Dictionary<TKey,TImage> |
Varies |
Supported |
IntPtr and raw image buffers |
Limited |
Supported |
| Stride, byte order, valid bits, and raw-byte diagnostics |
Limited |
Supported |
Mono10PackedLsb and Mono12PackedLsb |
Uncommon |
Supported |
| Multiple inspected images in one docked list |
Varies |
Supported |
| Split, absolute diff, blink, and linked pan/zoom |
Varies |
Supported |
| File-backed tiled display for very large payloads |
Uncommon |
Supported |
The docked image list keeps inspected values in one place. Select a thumbnail to compare variables without opening a separate viewer window for each image. Other visualizers vary; this table describes the difference between a basic Mat-only workflow and the features implemented here.
Key Features
- Single docked Visual Studio window where inspected images accumulate in an image list
- Typed and mixed image lists, dictionaries, and supported arrays append their entries to that same docked list
- Thumbnail preview for each inspected variable
- Width, height, stride, pixel format, source type, and diagnostics
- Pixel inspection with X/Y position, GV/RGB values, channel swatches, and raw bytes
- Zoom, pan, fit, 1:1 view, and high-zoom pixel value overlay
- Raw buffer diagnostics for stride, buffer size, valid bits, byte order, and format interpretation
- PNG export and raw snapshot export
- File-backed tiled viewer for very large raw payloads
RawBufferSnapshot
RawBufferView
- ImagePtr-style pointer objects
System.Drawing.Bitmap
- OpenCvSharp
Mat
- Emgu CV
Mat
- Typed or mixed
List<T>, Dictionary<TKey,TValue>, ArrayList, Hashtable, and supported image arrays
.rbuf.json + .raw snapshot files
OpenCvSharp Mat transfers were validated with OpenCvSharp4 4.0.0.20181225, 4.2.0.20200208, 4.5.5.20211231, 4.8.0.20230708, and 4.13.0.20260627.
Emgu CV Mat transfers were validated with Emgu CV 3.4.3.3016, 4.2.0.3662, 4.5.5.4823, 4.8.1.5350, and 4.13.0.5924.
Mono8, Mono16, Mono10PackedLsb, Mono12PackedLsb
Binary
RGB24, BGR24, BGRA32
Float32
BayerRGGB8, BayerGRBG8, BayerGBRG8, BayerBGGR8
Typical Workflow
- Start debugging in Visual Studio.
- Stop at a breakpoint where an image variable is alive.
- Click the debugger visualizer icon for a supported image or collection from DataTip, Watch, Locals, or Autos.
- The image, or each supported collection entry, is appended to the docked Raw Buffer Visualizer window.
- Inspect pixels, raw bytes, stride, format, and diagnostics.
Failed values remain visible as error rows, so unsupported formats or invalid buffers do not disappear silently.

Large Image Support
The viewer uses file-backed tiled rendering for large raw payloads. Dense Mono8 payloads at 100000 x 100000 and 200000 x 200000 were exercised without loading the complete payload into managed memory.
Known Limits
- A collection visualization processes the first 256 entries.
- Open generic registration makes Raw Buffer Visualizer available for typed lists and dictionaries. Only supported image entries are transferred; null, unsupported, and failed entries remain visible as error rows.
- Visual Studio's built-in
IEnumerable Visualizer may remain in the visualizer menu. Select Raw Buffer Visualizer for the docked image-list workflow.
- Lazy or arbitrary
IEnumerable sequences are not enumerated while the debugger is paused.
- Tested library versions are compatibility points, not a guarantee for every intermediate package build.
License
Raw Buffer Visualizer is licensed under the MIT License. External libraries retain their own licenses; see THIRD-PARTY-NOTICES.md in the source repository.
| |