"camera_take_picture" returns a boolean result, it should be checked.
Unfortunately "camera_take_picture" only starts the process of taking and saving a picture. It is a slow process, and you need to keep checking a special (undocumented) property to see when it is done.
Also, be careful with strings stored as data. Unless you need data in a variable, use a literal string. Otherwise it wastes valuable RAM. Also be sure you have "#pragma pack 1" near the start of the source file.
Here is some code I use in my test program:
native bool: camera_take_picture(const file_name);
// some versions of SDK do not have it in Camera.inc
#pragma pack 1
// save the picture
if (camera_take_picture("A:one.img")) // save on SD card
PlaySound(snd_cap_one); // shutter sound
// wait until done saving
while (get(property_cam_img_progress) != 0)
// now the picture is saved