The ability to create custom filters is a mainstay of any quality graphics application. A robust matrix-based filter engine can be used to create tens – even hundreds – of unique image effects by simply manipulating the matrices that get passed into the engine. In this project, I’ve provided a 5×5 custom filter engine with support for both scaling and biasing. This is identical to the custom filter engine provided by Photoshop, and mine is even slightly faster (at least for the screen-sized images I’ve been testing)…
This is the first of its kind in VB: accurate, real-time image level adjustment. Image levels provide better control over luminance than strict brightness/contrast methods, but not quite as much control as a well-built Curves Dialog. Adjusting an image using input/output/midtone levels is useful for brightening or darkening an image without losing detail at either end of the luminance spectrum. I’ve included simple histogram drawing code (as the screenshot shows) so you can see the effect that adjusting levels has on an image’s histogram. The code is well-commented and fast – please post comments and/or requests for future VB graphics projects.