Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用php自动裁剪到图像的正确位置_Php - Fatal编程技术网

如何用php自动裁剪到图像的正确位置

如何用php自动裁剪到图像的正确位置,php,Php,如何使用php裁剪图像,使其与图像中用户的脸完全一致……以下是我的代码 function resizeImage($image,$width,$height,$scale) { list($imagewidth, $imageheight, $imageType) = getimagesize($image); $imageType = image_type_to_mime_type($imageType); $newImageWidth = ceil($width *

如何使用php裁剪图像,使其与图像中用户的脸完全一致……以下是我的代码

function resizeImage($image,$width,$height,$scale) {
    list($imagewidth, $imageheight, $imageType) = getimagesize($image);
    $imageType = image_type_to_mime_type($imageType);
    $newImageWidth = ceil($width * $scale);
    $newImageHeight = ceil($height * $scale);
    $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);
    switch($imageType) {
        case "image/gif":
            $source=imagecreatefromgif($image); 
            break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":
            $source=imagecreatefromjpeg($image); 
            break;
        case "image/png":
        case "image/x-png":
            $source=imagecreatefrompng($image); 
            break;
    }
    imagecopyresampled($newImage,$source,0,0,0,0,$newImageWidth,$newImageHeight,$width,$height);

    switch($imageType) {
        case "image/gif":
            imagegif($newImage,$image); 
            break;
        case "image/pjpeg":
        case "image/jpeg":
        case "image/jpg":
            imagejpeg($newImage,$image,90); 
            break;
        case "image/png":
        case "image/x-png":
            imagepng($newImage,$image);  
            break;
    }

    chmod($image, 0777);
    return $image;
}
这是这个函数的调用

$wwidth = getWidth($new_small_image);
            $hheight = getHeight($new_small_image);
            $x1 = $wwidth/2;            
            $y1 = $hheight/2;
            $x2 = 0;
            $y2 = 0;
            $w = 50;
            $h = 50;
            $scale = $thumb_width/$w;
            resizeThumbnailImage($new_small_image, $new_small_image,$w,$h,$x1,$y1,$scale);
但这是裁剪图像的精确中心,这是不对的,我想裁剪图像到图像的正面

这是裁剪后的结果


请让我知道实际问题是什么……

您需要通过类似OCR的软件检测图像

如果这是用户图片的一部分,您必须读取所有像素并以%构建可能性


最好让他们选择缩略图;)

您计划如何定义面部区域?否则您希望如何定义面部区域?至少需要十年的时间,PHP中才会出现有价值的自动人脸识别。