I tried to use the Picture Overlay on a Dahua camera, and found it cumbersome to produce an image that fits within the constraints required by the camera. So today I built a program that converts common image formats into a small bitmap image that works with the "Picture Overlay" feature available in some Dahua cameras.
You can get it from GitHub: bp2008/DahuaPictureOverlay
Implementation Details
Dahua cameras require the overlay image to be in BMP format with a 256 color palette, no larger than 16 KiB, and no larger than 128x128 pixels. Additionally, BMP files written by other software may or may not work fully depending on the header format used by that software. There are about a dozen bitmap header format specifications, and I had to try three different ones before I found a format that works well with my cameras. RLE bitmap compression does not appear to be properly supported by the cameras.
You can get it from GitHub: bp2008/DahuaPictureOverlay
Implementation Details
Dahua cameras require the overlay image to be in BMP format with a 256 color palette, no larger than 16 KiB, and no larger than 128x128 pixels. Additionally, BMP files written by other software may or may not work fully depending on the header format used by that software. There are about a dozen bitmap header format specifications, and I had to try three different ones before I found a format that works well with my cameras. RLE bitmap compression does not appear to be properly supported by the cameras.