Привет всем!
Делаю добавление/сохранение аватарок на сайте!
Исходную картинку кроплю/cropping с помощью
Cropper, всё отлично, скрипт возвращает canvas, потом делаю конверт в image
var $canvasImage = $(".cropper > img").cropper("getCroppedCanvas", {width: 170, height: 170});
var $img = new Image();
$img.src = $canvasImage.toDataURL("image/png");
далее аяксом (по нажатия кнопки "Сохранить") передаю бинарный код методом html в обработчик для сохранения
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKoAAACAAAAAXNSR0IArs
...
L65zz5n36pbJgMEyKpad5+99mrnHHOMb3xjzLG8f/72OLQAAAABJRU5ErkJggg==
всё хорошо, НО вот что у меня не получается, так это сделать ресайз и сохранить аватарки в папку (
domain.ru/avatars)
перепробовал много вариантов, никак не получается
$targetdir = "http://domain.ru/avatars/"; // указываем путь к папке сохранения
$photoname = $user["userid"] . ".jpg"; // создаем имя для будущих картинок
$photodata = $_REQUEST["photodata"]; // сохраняем значение полученного бинарного кода картинки
$originalphoto = imagecreatefromstring($photodata);
// берем исходное разрешение
$original_width = imagesx($originalphoto);
$original_height = imagesy($originalphoto);
// создаем новые пустые картинки
$new170 = imagecreatetruecolor(170, 170);
$new90 = imagecreatetruecolor(90, 90);
$new60 = imagecreatetruecolor(60, 60);
$new30 = imagecreatetruecolor(30, 30);
// делаем ресайз картинки
imagecopyresampled($new170, $originalphoto, 0, 0, 0, 0, 170, 170, $original_width, $original_height);
imagecopyresampled($new90, $originalphoto, 0, 0, 0, 0, 90, 90, $original_width, $original_height);
imagecopyresampled($new60, $originalphoto, 0, 0, 0, 0, 60, 60, $original_width, $original_height);
imagecopyresampled($new30, $originalphoto, 0, 0, 0, 0, 30, 30, $original_width, $original_height);
// сохраняем картинку с качеством - 60
ob_start();
imagejpeg($new170, $targetdir . "170-" . $photoname, 60);
imagejpeg($new90, $targetdir . "90-" . $photoname, 60);
imagejpeg($new60, $targetdir . "60-" . $photoname, 60);
imagejpeg($new30, $targetdir . "30-" . $photoname, 60);
$i = ob_get_clean();
imagedestroy($originalphoto);
imagedestroy($new170);
imagedestroy($new90);
imagedestroy($new60);
imagedestroy($new30);
Вот! Подскажите, что у меня не так? Спасибо!
PS
$photodata = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKoAAACAAAAAXNSR0IArs
...
L65zz5n36pbJgMEyKpad5+99mrnHHOMb3xjzLG8f/72OLQAAAABJRU5ErkJggg==";
PSS
это — до декодирования
это — после base64_decode()