Thank you for your interest in the project!
I am sincerely and definitely interested and would not turn down the help.
There is already an Image processing framework being developed @
, it uses System.Numerics and has a good starting point for quite a few transformations and other math.
There is also
, which is essentially a LibGD Wrapper.
And finally there is also
Microsoft - FFmpegInterop
which provides yet another way.
What I am after is a PURE C# solution, the Media.Codec.dll outlined what seemed to be an even better starting point that ImageProcessor and the others for the following reasons:
Any ImageFormat can be represented and transformed accurately; including but not limited to the SubSampling, Alpha Channel Depth and Bit Precision required for non contiguous elements in varying orders even if they are mixed in some way; in short my Image class
conversions when written once should be applicable to any derivative of the same ImageFormat, see
for an example of how RGB, BGR and GBR with or without Alpha channel is supported from a single class which required no other work but can be optimized for cases which are contiguous and additionally where SIMD
or other intrinsics may benefit.
Audio and Image share the same interface and backing making it quite easy to setup a WaveFormTransformation / WaveletTransformation or other desired transform which works with both Audio and Video data accordingly; In short a FastForurierTransformation should
be a type of DiscreteCosineTransform (with the -> Inverse method) already baked in.
You will eventually be able to Draw in the native ImageFormat thus eliminating conversions necessary for manipulating images in formats other than the System's default ImageFormat.
It is my eventual goal that Kernel Drivers / System Calls have a managed abstraction such that it becomes possible to:
Interact with various hardware components including but not limited to:
Intrinsics, DMA, FPU, MMU, Chipset, PCI, GPU, Sound Card etc.
Support OpenGl in software and through any supported GraphicsAdapter (even as a CoProcessor of the CentralProcessingUnit)
Take C# code and cross compile to native code of the desired MachineFunction as well as the reverse where possible(take a MachineFunction and generate a managed analogous)
Eventually allowing you to either run C# and any other machine code on the GraphicsAdapter or elsewhere such as to interact directly with them for whatever purposes may be required.
Since those are all very high level and not yet complete I will offer the following:
Let me know where you would like to start and what you would like to provide (Diagrams is possible but along with code samples)
Start taking notes or making any changes required to complete the implementation of Image and AudioBuffer.
Consider defining WaveForm yourself along with Sine and see where you get with WaveFormTransformation.
I already have an interface for Codec and a few implementations basically working; consider working on the existing Codec implementations as well as testing them, there exists the eventual need to Register all codecs in some fashion and only minimal work has
been done in this area.
Consider working on an existing Issue (for Drawing and Fonts perhaps)
Let me know what you want to do and we can go from there!