Сабж. Как сделать пропорциональное изменение размера картинок при загрузке в PHP? Нашел код. PHP: $file_name = $_FILES['upload']['tmp_name']; switch($_FILES['upload']['type']) { // узнаем тип картинки case "image/gif": $im = imagecreatefromgif($file_name); break; case "image/jpeg": $im = imagecreatefromjpeg($file_name); break; case "image/png": $im = imagecreatefrompng($file_name); break; case "image/pjpeg": $im = imagecreatefromjpeg($file_name); break; } list($w,$h) = getimagesize($file_name); // берем высоту и ширину $koe=$w/200; // вычисляем коэффициент 200 это ширина которая должна быть $new_h=ceil($h/$koe); // с помощью коэффициента вычисляем высоту $im1 = imagecreatetruecolor(200, $new_h); // создаем картинку imagecopyresampled($im1,$im,0,0,0,0,200,$new_h,imagesx($im),imagesy($im)); imageconvolution($im1, array( // улучшаем четкость array(-1,-1,-1), array(-1,16,-1), array(-1,-1,-1) ), 8, 0); imagejpeg($im1, $file_name, 100); // переводим в jpg imagedestroy($im); imagedestroy($im1); HTML: <form enctype="multipart/form-data" method="post" action="tests.php"> <table class="table_user" border="1"> <tr> <td><b>Выберите картинку:</b></td> </tr> <tr> <td><input type="file" name="upload"></td> </tr> </table> <br> <center><input type="submit" value="Загрузить"></center> </form> Но после загрузки картинку не выводит.. Просто белая страница. Не знаю что делать.
Попробуй с этой https://github.com/avalanche123/Imagine библиотекой https://secure.php.net/imagejpeg По идее белый экран это нормально, картинка просто сохраниться по пути из переменной $file_name
По такому методу - Черная картинка. http://zoomcraft.ru/uploads/files/Kela.jpg - Пример. Код PHP: <?php $file_name = $_FILES['upload']['tmp_name']; switch($_FILES['upload']['type']) { // узнаем тип картинки case "image/gif": $im = imagecreatefromgif($file_name); break; case "image/jpeg": $im = imagecreatefromjpeg($file_name); break; case "image/png": $im = imagecreatefrompng($file_name); break; case "image/pjpeg": $im = imagecreatefromjpeg($file_name); break; } list($w,$h) = getimagesize($file_name); // берем высоту и ширину $koe=$w/200; // вычисляем коэффициент 200 это ширина которая должна быть $new_h=ceil($h/$koe); // с помощью коэффициента вычисляем высоту $im1 = imagecreatetruecolor(200, $new_h); // создаем картинку imagecopyresampled($im1,$im,0,0,0,0,200,$new_h,imagesx($im),imagesy($im)); imageconvolution($im1, array( // улучшаем четкость array(-1,-1,-1), array(-1,16,-1), array(-1,-1,-1) ), 8, 0); imagejpeg($im1, $file_name, 100); // переводим в jpg imagedestroy($im); imagedestroy($im1); move_uploaded_file ($file_name, "uploads/files/Kela.jpg"); ?>
@Kela придётся весь код перепроверять, все ли функции отрабатывают как надо возвращают нужный результат, читай по ним документацию, по принимаемым и возвращаемым данным и делай отладку отладка/debug http://phpfaq.ru/debug https://netbeans.org/kb/docs/php/debugging_ru.html https://php.ru/forum/threads/howto-...i-po-shagam-i-s-kartinkami.58974/#post-474550
Уже лучше imagecopyresampled($im1,$im,0,0,0,0,200,$new_h,imagesx($im),imagesy($im)); - Переместил в значение появилась картинка. Но как ограничить ширину тоже? А то картинка уменьшилась до 200x264 а мне надо макс 200x200
Вроде нормальное изображение по ссылки --- Добавлено --- Почитай какие аргументы относятся к размерам изображения и переделай алгоритм под свою задачу
Вопросик есть PHP: function delete_avatart($user_id) { КОД } Как вызвать в нее функцию PHP: function TEST($user_id) { Код }
Нет. Смотри. У меня есть функция TEST - в ней есть код. Мне надо когда вызывается функция delete_avatart - она вызывает дополнительно TEST
пропорциональное изменение размера картинок при загрузке в PHP. нашел код - и подстроил под свой скрипт. Но суть что если большое изображение тогда ширина больше чем надо.(Максимум 200 высота 200 ширина.) Как поставить ограничение? Код (Text): if($_POST['action'] == 'avatar_upload'){ $image = $_FILES['file']['tmp_name']; switch($_FILES['file']['type']) { // узнаем тип картинки case "image/gif": $im = imagecreatefromgif($image); break; case "image/jpeg": $im = imagecreatefromjpeg($image); break; case "image/png": $im = imagecreatefrompng($image); break; } list($w,$h) = getimagesize($image); // берем высоту и ширину $koe=$w/200; // вычисляем коэффициент 200 это ширина которая должна быть $new_h=ceil($h/$koe); // с помощью коэффициента вычисляем высоту $im1 = imagecreatetruecolor(200, $new_h); // создаем картинку imagecopyresampled($im1,$im,0,0,0,0,200,$new_h,imagesx($im),imagesy($im)); imageconvolution($im1, array( // улучшаем четкость array(-1,-1,-1), array(-1,16,-1), array(-1,-1,-1) ), 8, 0); imagejpeg($im1, $image, 80); // переводим в jpg imagedestroy($im); imagedestroy($im1); $url = 'avatar_'.$userid.'.'.mt_rand(100, 1000).'.jpg'; if(move_uploaded_file($image, $_SERVER['DOCUMENT_ROOT'].'/uploads/fotos/'.$url)) { $dle_api->change_avatart($userid,$url); echo('{"success":"Аватар обновлён", "avatar_url": "/uploads/fotos/'.$url.'"}'); } else exit('{"error":"Ошибка загрузки аватара!"}'); }