I decided to release a beta version of the new version of Image Kit. For those that use the previous version: I think you can copy the DLL alongside the other version in order for your old programs to work that use this DLL. Mainly because target image support is dropped for filters, I decided to give this DLL another name (also, the commands now have a prefix 'IK' to avoid conflicts).
 Link to the previous version: Image Kit v1.*
Now for the new version's features:
Create/copy/edit normal and target images.
Use filters to change the appearance of normal images, or effects (pixel shaders) that you can load for target images.
Paste images on other images or on the screen using blend modes and shaders (in case of a target image or the screen). You can rotate, or stretch the image when rendering.
Draw gradients on a normal image.
LIST OF COMMANDS
IK Create Image Image Number, Width, Height [, Color]
IK Create Target Image Image Number, Width, Height [, Color]
IK Set Blend Mode Mode
IK Set Filters Min Filter, Mag Filter, Mip Filter
IK Set Address UV Address U, Address V
IK Copy Image Image Number, Source Image Number [, Left, Top, Right, Bottom]
IK Blur Image Image Number, Radius [, Mode]
IK Blur Image Horizontal Image Number, Radius, Mode
IK Blur Image Vertical Image Number, Radius, Mode
IK Set Image Brightness Image Number, Red, Green, Blue [, Alpha]
IK Desaturate Image Image Number, Mode
IK Modify Image Saturation Image Number, Percentage
IK Sharpen Image Image Number
IK Emboss Image Image Number
IK Negative Image Image Number
IK Set Color To Alpha Image Number, Color
IK Flip Image Horizontally Image Number
IK Flip Image Vertically Image Number
IK Flip Image Image Number
IK Resize Image Image Number, Width, Height, Mode
IK Set Image Channel Image Number, Channel, Value
IK Copy Image Channel Image Number, Channel, Channel Source
IK Paste Image Channel Image Number, Source Image Number, Channel [, Channel Source, X, Y]
IK Replace Image Color Image Number, New Color, Source Color
IK Point (Image Number, X, Y)
IK Dot Image Number, X, Y, Dot
IK Reset Image Kit
IK Paste Image Image Number [, X, Y, Effect][, Left, Top, Right, Bottom [, Effect]]
IK Paste Image Rotated Image Number, X, Y, Angle [, Effect]
IK Paste Image On Image Image Number[, X, Y [, Effect]] [, Left, Top, Right, Bottom [, Effect]]
IK Paste Image On Image Rotated Image Number, X, Y [, Angle]
IK Gradient Linear Image Number, X1, Y1, X2, Y2, Color1, Color2, Channel, Mode
IK Gradient Radial Image Number, X, Y, Radius1, Radius2, Color1, Color2, Channel, Mode
IK Treshold Image Image Number, Value, Channel
IK Load Effect Filename, Effect
Return = IK Load Effect(Filename, Effect)
IK Delete Effect Effect
Return = IK Effect Exist(Effect)
IK Set Effect Float Image Number, Name, Value
IK Set Effect Vector4 Effect, Name, Vector4
IK Set Effect Matrix4 Effect, Name, Matrix4
IK Set Effect Technique Effect, Technique
IK Set Effect Texture Effect, Name, Texture
- The help files are semi-auto-generated (I made a program that generates the help files based on the commands, parameters & descriptions I gave it. Unfortunately I didn't include a way to handle functions that return a value, so those help files have a "Return" parameter which obviously is the parameter that should be returned. Sorry for the inconvenience.
- I have not yet tested this program for every command. If any of you would find a bug, please tell me. It will make my job a little easier.
- The plugin comes with 2 examples that use the shader system. One is a Julia/Mandelbrot fractal viewer using IK paste image on image
(the target image is a sort of buffer). The second one is a simple scene where the camera output is pasted onto the screen using a shader (3 versions of desaturation & 2 distortions, where one is using a distortion map).
- example (included with download)
FPS is capped at 85
No shader, no technique
Desaturate shader, Lightness
Distortion shader, mapped with a second texture
- Fractal - example (include with download)
Zoomed, use right mousebutton to move, use space to reset.
I haven't got the time to make more examples, but I think it shows enough of the possibilities.
Note to all:
This plugin can now be found in the program announcement board: