I made this instructable because I couldn't find software for engraving images with G-code controlled laser. I tried inkscape with extenstions, but this isn't what I expected. I want to engrave photos like attached one, make PCBs etc. So I wrote app in Matlab, which I use commonly on my university. I call it imGcode I want you to give it a try. It is standalone executable, with all libraries attached, so you will only need to install one file and it should work.
You will need laser with grbl or other Gcode controlled laser. It have to have laser PWM controlled by S code.
App is here:
Step 1: ImGcode
App is quite simple. It'll ask you for image (most file formats should work, if something fails convert it with MS Paint to bmp). Image can be bw or rgb. Then It'll ask for output file in .nc format. after that dialog-box will appear. It have some basic settings:
Origin offset is point where lower left corner of image will be according to machines' coordinate system.
Pixelsize is size of one pixel of image You can set it as you like, but I think that the best value is 0.1mm or 0.2mm.
Feedrate is speed of laser head in mm/min.
Image horizontal size is output size of engraved image in mm.
Output bitdepth is parameter for calculating steps of PWM. 3 will result 8 colors, 2->4 colors, 1->2 colors meaning only B/W. You shouldn't exceed 8bits, but I suggest to use maximum 4 bits.
App will show you black and white image with reduced bitdepth and after calculation dialog box, that operation was successful.
For better results use some graphic program that will allow you to change image to B/W, make higher contrast and set brightens to appropriate level.
Step 2: Additional Info
imGcode is quite slow when working as standalone, so please be patient. Also it have to install quite big Matlab runtime, which is free to use.
If you have inverted Y axis in opposite direction to my droving in previous step, it will work, but image will be upside down and origin offset will show upper left corner.
Maximal and minimal powers are 255 and 0, others are evenly distributed between max and min. Number of steps is defined by bitdepth 4->16,3->8, 2->4, 1->2 only max and min.
Let me know if any bug appears or you need any changes.