On Mac, you can also use the standard dd tool. Use df -h to determine which disk device your SD card is allocated. Where
/dev/rdiskx is your SD card.
dd if=/dev/rdiskx of=/path/to/image bs=1m
Once your SD image is created, which will reflect the exact size of your SD card, it is advisable to compress (zip it) to save on space.
To restore the image back to the SD card at a later stage, similarly the dd tool can be used like this:
dd bs=1m if=/path/to/image of=/dev/rdiskx
Please note: These commands will need sudo access. You also need to unmount any mounted SD card partitions before proceeding with the restore. This can be done by making use of the umount command.
Also, you can check on progress at any time by pressing Ctrl+T. This will provide output that looks like this:
load: 0.87 cmd: dd 21591 uninterruptible 0.00u 0.16s 176+0 records in 176+0 records out 184549376 bytes transferred in 4.826822 secs (38234137 bytes/sec)