В этой статье покажу пример, как можно изменить разрешение картинки с помощью php.
Условия задачи: Скачать картинку с сайта и сохранить в заранее установленной директории , при этом, если разрешение(ширина) оригинала будет больше, то уменьшить до заданной ширины.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<?php $file="https://ddr64.link/wp-content/uploads/2018/11/bereg.jpg"; $wf=640;//Желаемая ширина картинки, предполагаем, что высота нас устраивает $put=$_SERVER['DOCUMENT_ROOT'].'/wp-content/uploads/';//Путь сохранения картинки resizeimg($file,$wf,$put); function resizeimg($file,$wf,$put) { $file=urldecode($file);//На тот случай, если картинка будет на русском $path=pathinfo($file);//разобьём путь на название, расширение, и корневую директорию $ras=$path["extension"];//выделяем расширение файла, можно еще сделать с помощью регулярных выражений $name=$path["basename"];//выделяем название файла, можно еще сделать с помощью регулярных выражений $name_file=$put.$name;//Полный путь к файлу + название файла, которое берется из названия скачиваемого файла if(!file_exists($put)){ mkdir($put,0755, true); } $razmer=getimagesize($file); $w=$razmer[0];//ширина оригинала $h=$razmer[1];//высота оригинала $tip=$razmer[2];//Тип файла if($w < $wf){ $wf=$w;//Если ширина оригинала меньше желаемой ширины, оставляем без изменений } else{ $koaf=$w/$h; $h=$wf/$koaf;//определяем высоту исходя из желаемой ширины } $pust=imagecreatetruecolor($wf,$h); //Для PNG и GIF imageAlphaBlending($pust, false); imageSaveAlpha($pust, true); if($tip==1) $img=imagecreatefromgif($file); else if($tip==2) $img=imagecreatefromjpeg($file); else if($tip==3) $img=imagecreatefrompng($file); if(!imagecopyresampled($pust,$img,0,0,0,0,$wf,$h,$razmer[0],$razmer[1])) { return false;//выходим, если где-то ошибка } if(($ras=="jpg")||($ras=="JPG")||($ras=="jpeg")||($ras=="JPEG")) { $n=50;//Качество картинки от 0 до 100 imagejpeg($pust,$name_file,$n); } else { if(($ras=="gif")||($ras=="GIF")) { imagegif($pust,$name_file); } else { if(($ras=="png")||($ras=="PNG")) { $n=5;//Качество картинки от 0 до 9 imagepng($pust,$name_file,$n); } } } } ?> |