FCBmpImport is a macro for importing black and white (1 bit per pixel) bmp images into FreeCAD as FreeCAD objects. These can be imported as Mesh Objects (requires OpenSCAD binary to be installed), Solids (based on Part workbench Wedge objects), Sketches, Wires, Faces, and Extruded. I have included fairly extensive documentation in the readme file on my github site.
The images must be in 1 bit per pixel bmp format, although the preview image feature will work in a number of other formats (but the actual import requires 1bpp bmp). A good tool for converting an image to that format is GIMP2. I have instructions for doing this in the readme, too.
In addition to being able to import images the macro also has a couple helper features that could prove useful in other contexts (besides importing images). One of them is the ability to select objects (can be faces, points, or edges) based upon an object already selected. The most recently selected object becomes a template, based on that object's zmin and zmax (or xmin/xmax or ymin/ymax) values in its bounding box. Other such objects matching that same zmin/zmax that are part of the larger object will be added to the selection. This can be useful for selecting a bunch of faces in the Path workbench preparatory to creating pocket paths from said faces. Could also be of use if you wish to select edges for fillet or chamfer operations.
I've also including some wire point editing tools for manpulating DWire objects. With these tools you can do things like select every odd vertex in a DWire object, move or cut the selected points, insert new points, etc. The purpose for these tools would be to smooth out or cleanup pixellated edges when importing lower resolution images (which we are unfortunately going to be limited to using due to performance issues when using higher resolution images) as wires or faces, but since they can be used on any DWire object you might (or might not) find them useful even if you don't import images with the macro.
My code isn't very 'pretty' or 'elegant', but I'm just a self-taught amateur hobbyist programmer. I am also relatively new to FreeCAD, Python, and Qt, so this project was as much about learning more about those as about creating a (hopefully) useful macro. I also wanted a way to import images for use with a little CNC engraving machine using FreeCAD, the idea being to import the image, setup the G-Code, and do the engraving. It works fairly well for this purpose, all things considered. I've learned a lot (though I am certainly no guru), and there are probably some things I would do a little bit differently the next time, and no doubt there are things that will need to be corrected, bugs fixed, etc. Virtually all of the testing that I have done with the macro has been using Windows 10 64 bit, and only very minimal testing using the linux appliance on the downloads page with Puppy Linux 7.5 64 bit (Xenial-based).