Php загрузить файл, затем обрезать

Я нахожусь на проекте Cordova. Я использую Jquery и плагин Jcrop и Php GD на моей стороне сервера. Когда я загружаю аватар пользователя, я пытаюсь обрезать картинку. Загрузка идет хорошо, но ничего не происходит для урожая.

код php:

    if(move_uploaded_file($file,$dirname."/avatar.jpeg")){
        $targ_w = $targ_h = 150;
        $src =   $dirname.'/avatar.jpeg';
        $img_r = imagecreatefromjpeg($src);
        $dst_r = ImageCreateTrueColor( $targ_w, $targ_h );
        imagecopyresampled($dst_r,$img_r,0,0,$_POST['avatar_x'],$_POST['avatar_y'], $targ_w,$targ_h,$_POST['avatar_w'],$_POST['avatar_h']);
    }else{...}

у меня нет сообщения об ошибке

1 ответ

Решение

Ничего не происходит, потому что вы ничего не делаете с результатом. Смотрите документацию дляimagecopyresampled:

imagecopyresampled() займет прямоугольную область от src_image [...] и поместите это в прямоугольную область dst_image,

После запуска этой функции результат будет в $dst_r, который по-прежнему является ресурсом изображения в памяти. Теперь вы должны сохранить его в файл. Это можно сделать с помощью imagejpeg функция, например:

imagejpeg($dst_r, "$dirname/avatar_cropped.jpeg");
Другие вопросы по тегам