Skip to content
This repository has been archived by the owner on Sep 21, 2023. It is now read-only.

julzerinos/csharp-image-processing

Repository files navigation

Image processing in C# Winforms

This project aims to recreat various image/bitmap processing methods and algorithms in a C# Winforms environment.

Image processing features

The following options are available for image processing.

Image processor window

  • Displays the original and modified image side by side
  • You can directly copy from the modified image context menu
  • You can select the image view mode from "fit" and "view original size"

Filters

  • You can apply a wide variety of functional as well as convolution filters
  • You can add as many layers as you like
  • Order of applying filters is taken into account
  • A caching system stores each bitmap for a given order of filter layers

Custom convolution kernel

  • Adds a custom kernel to the filters list
  • You can edit the kernel setup in a the Edit Kernel window
  • You can choose row and column count, kernel divisor (by default set automatically to sum of all cells), value offset and anchor point (wrt. applied cell)

Filter options window

  • Changes the values used in certain filters
  • Reapplies all current layers

YCbCr colorspace split

Bitmap creation features

The following options are available for bitmap creation (accessible via the Drawing window)

Drawing window

  • A seperate window for all your bitmap creation needs
  • Allows saving and opening states (stored in serialized binary files)

Shapes

  • Various shapes can be created simply by clicking
  • These are vector object shapes, stored and treated as objects (ie. circle has an origin point and a radius)
  • All shapes can be moved, redrawn or removed in the shapes menu (color and thickness taken into account while redrawing)
  • Polygons may be clipped

Additional setup

  • Background color may be changed
  • Anti-aliasing may be turned on and off for shapes using midpoint lines
  • The clipping boundary may be displayed

Filling

  • Point-based flood fill is available (and stored as separate object)
  • Polygons may be filled with specific colors or tiled images

Final note

If for some darn reason good ol' Microsoft Paint ain't satisfying all your image dillydallying needs, head on down to Joe's Peppercot Farms n' try out that dandy release in the right-as-the-Lord-himself -hand menu. God bless 🤠