-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Description
Proposal for minimalistic imaging platform
.NET does not provide a truly portable image format nor portable image IO operations.
For example System.Drawing.Bitmap nor WPF's BitmapSource and does not provide generic interface which imposes compile-time constraints. EmguCV's generic image provides the generic interface but is heavily coupled with OpenCV.
All mentioned image types do not provide a unified interoperability needed when mixing image-processing algorithms from different libraries.
Goals:
- to create a portable module for image reading/writing
- to create a portable, slim image format such as DotImaging has (native array Bgr<byte>[,])
- to create system drawing primitives - such as in DotImaging.Primitives2D
- optionally to create portable video reading and web-camera access module
Proposal
To leverage existing structure and components of DotImaging framework, but to replace the backing OpenCV part needed for image IO.
The first step would be to create a portable image reading/writing module with the most simplistic API (e.g. ImageIO.LoadColor(), LoadGray()...).
Options:
- a wrapper arround LibGD (@ Proposal for Cross-plat Server-side Image Manipulation Library #14706)
- trim down and reuse the existing platform specific module of: Eto.Forms - includes drawing capabilities as well, or Splat.
Related issues
Proposal for Cross-plat Server-side Image Manipulation Library - proposal of much broader scale - this proposal resolves the core issue and levaes out separates image processing part managed by other libraries Accord.NET, Accord.NET Extensions, EmguCV.
.NET core should have primitive drawing types - already done in DotImaging.Primitives2D