C# / .Net image filters working on linux (and other cross platforms) with Mono

When I published Yael , which is basically a set of .Net open source image filters class library, I tried testing that on several linux platforms using Mono. back than Mono was somewhere around the 1.2 version and trying to run several gdi related core lib calls crashed down Mono. recently , with the announcement of the completion of Mono's 2.0 api  I've decided to revisit this test. Another aspect that i've tested didn't go so well so I was a bit pessimistic.

Short:
The YAEL example (which is included with the class library content) and other filters tests I've ran worked out perfectly. which means that YAEL can now be used on linux platforms as well..
And here is the result

Long:
Here is how to do this, this is also helpful as a getting started guide if you want to use my library on linux.
1.download a virtualization application . It can either be VMWare or VirtualPC
2.download an OpenSuse livecd , I recommend using Mono's preconfigured version from here
3.Run OpenSuse as a virtual machine
4.Download the YAEL library from here to a windows machine
5.Compile the example project and place it on a share
6.Login to the OpenSuse virtual machine, make sure there is a network connectivity between the virtual machine and the machine with the YAEL example you're just compiled.
   BTW, for this specific livecd the username is linux and the password is mono.
7.Now here is the tricky part, we have to move the YAEL example bits to the virtual machine.
7.1 open up a terminal window by clicking on the computer button on the bottom left and picking the terminal application

7.2 We are going to use a nice gnu app called smbclient , which is basically an ftp over SMB, or in other words an FTP that knows how to connect to a windows share driver
7.3 For running SMB client run the following cmd on the terminal window that was just opened--> smbclinet //[your share drive machine ip]/[name of share drive] -W [workgroup or domain name] -U [username]
      An example for that would look like this --> smbclient //192.168.1.10/Yael -W home-pc -U roiy
      Where 192.168.1.10 is the machine that holds the share drive with my compiled YAEL example.
7.4 Enter the user's password and you're in the SMB Clinet FTP like prompt.
7.5 type lcd /tmp [and hit enter]
7.6 type recurse [and hit enter]
7.7 type prompt [and hit enter]
7.8 type mget * [and hit enter]
7.9 At this stage you should have moved the Yael example folder to /tmp
8.Exit smbclient (by hitting CTRL+C) and cd to the /tmp folder
9.Cd further into the YAEL example bin folder (run ls -ltr for a list of files and directories - the same as dir)
10. And run the following command to execute the example
    mono YaelExample.exe
11. At this point, 3 example jpeg filtered files should be created.
12. Image files can be viewed with a small app called xview. run xview and provide the image file name as a parameter and you should get the following

So give it a try and tell me how it went...
Roiy

No Comments