Search code examples
phpapiface-detectioncloudinary

PHP face detection: cloudinary API face count


I'm using the cloudinary face detection API this way:

require 'cloudinary/Cloudinary.php';
require 'cloudinary/Uploader.php';
require 'cloudinary/Api.php';

\Cloudinary::config(array(
    "cloud_name" => "xxxxxxxxxxxx",
    "api_key" => "9999999999999",
    "api_secret" => "xxxxxxxxxxxxx"
));

$img = 'guy.jpg';
$imgid = time() . 'guy';

\Cloudinary\Uploader::upload($img, array("public_id" => $imgid));

$url = 'http://res.cloudinary.com/xxxxxx/image/upload/c_fill,g_face,h_500,w_375/' . $imgid . '.jpg';
file_put_contents('cropped' . $img, file_get_contents($url));

But what I also need is:

\Cloudinary\Uploader::upload($img, array("public_id" => $imgid));

// what I need >>>
if('face_count != 1')
{
    exit;
}
// <<< what I need

$url = 'http://res.cloudinary.com/xxxxxx/image/upload/c_fill,g_face,h_500,w_375/' . $imgid . '.jpg';
file_put_contents('cropped' . $img, file_get_contents($url));

I don't understand how to use the face_count from the doc here: http://cloudinary.com/documentation/image_transformations#specifying_conditions


Solution

  • Thanks for the answer Nadav, I solved it this way:

    $url = 'http://res.cloudinary.com/xxxxxxx/image/upload/if_fc_eq_1,c_fill,g_face,h_500,w_375/' . $bildnamecloud . '.jpg';
    file_put_contents('cropped' . $bildname, file_get_contents($url));
    
    \Cloudinary\Uploader::destroy($bildnamecloud);
    
    
    list($width, $height) = getimagesize('cropped' . $bildname);
    
    if($width == 375 AND $height == 500)
    {
    
    }
    else
    {
    
    }