Yes, but I linked as a reference for you -- not a step by step guide.
As you see, the menu code is generated after two comparisons are made. First, CPG checks to see if this is the user's private album. Then it checks to see if the gallery is in admin mode. If one of these conditions is true, it creates the delete buttons (and the edit and crop/rotate buttons in 1.3) for the page. The user can then click on these links. Now each of the associated scripts for will check to see if the person calling them has authorization to perform the requested action.
In displayimage.php:
$picture_menu = ((USER_ADMIN_MODE && $CURRENT_ALBUM_DATA['category'] == FIRST_USER_CAT + USER_ID) || GALLERY_ADMIN_MODE) ? html_picture_menu($pid) : '';
You would need to add an additional comparison here to see if the pic owner is the same as the current user.
In delete.php:
} else {
$query = "SELECT {$CONFIG['TABLE_PICTURES']}.aid as aid, category, filepath, filename FROM {$CONFIG['TABLE_PICTURES']}, {$CONFIG['TABLE_ALBUMS']} WHERE {$CONFIG['TABLE_PICTURES']}.aid = {$CONFIG['TABLE_ALBUMS']}.aid AND pid='$pid'";
$result = db_query($query);
if (!mysql_num_rows($result)) cpg_die(CRITICAL_ERROR, $lang_errors['non_exist_ap'], __FILE__, __LINE__);
$pic = mysql_fetch_array($result);
if ($pic['category'] != FIRST_USER_CAT + USER_ID) cpg_die(ERROR, $lang_errors['perm_denied'], __FILE__, __LINE__);
}
and
case 'picture':
if (!(GALLERY_ADMIN_MODE || USER_ADMIN_MODE)) cpg_die(ERROR, $lang_errors['access_denied'], __FILE__, __LINE__);
The ability to edit the description of a single image and crop/rotate that image are available in 1.3. You will have to do a query for the pic's owner ID in delete.php, editOnePic.php, and picEditor.php, as all initially test for Gallery or user admin modes. You would compare the result to the current user's ID. You would then add an extra testing condition to the guard lines that would grant access based on the outcome of the comparison.