Добрый день! Помогите сделать одну штуку! Есть уменьшение размера картинки , точнее исходный размер $final_width_of_image = 1600;
Но! При загрузке например 800х800пкс он картинки растягивает до указанных 1600пкс.
Как сделать сто бы картинки больше 1600пкс резались , а меньшего разрешения не менялись (не растягивались до 1600пкс)
Заранее спасибо :)
<?php
if (is_uploaded_file($_FILES['upload_photo']['tmp_name']))
{
if ( ($_FILES['upload_photo']['type'] == 'image/gif' || $_FILES['upload_photo']['type'] == 'image/jpeg' || $_FILES['upload_photo']['type'] == 'image/png') && $_FILES['upload_photo']['size'] <= 2024000 )
{
$new_name = date("d-m-Y-h-i-s",strtotime("+0 hour"));
$upload_photo = $new_name.'-'.$_FILES['upload_photo']['name'];
//copy($_FILES['upload_photo']['tmp_name'],"../newsimg/".$upload_photo);
$file_name = $_FILES['upload_photo']['name'];
$path = '../pro/';
if(preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)|(gif)|(GIF)|(png)|(PNG)$/',$new_name.'-'.$_FILES['upload_photo']['name']))//проверка формата
{
$filename = $new_name.'-'.$_FILES['upload_photo']['name'];
$source = $_FILES['upload_photo']['tmp_name'];
$target = $path . $filename;
move_uploaded_file($source, $target);
$final_width_of_image = 1600;
if(preg_match('/[.](jpg)$/', $filename)) {
$im = imagecreatefromjpeg($path . $filename);
} else if (preg_match('/[.](jpeg)$/', $filename)) {
$im = imagecreatefromjpeg($path . $filename);
} else if (preg_match('/[.](JPG)$/', $filename)) {
$im = imagecreatefromjpeg($path . $filename);
} else if (preg_match('/[.](JPEG)$/', $filename)) {
$im = imagecreatefromjpeg($path . $filename);
} else if (preg_match('/[.](gif)$/', $filename)) {
$im = imagecreatefromgif($path . $filename);
} else if (preg_match('/[.](GIF)$/', $filename)) {
$im = imagecreatefromgif($path . $filename);
} else if (preg_match('/[.](png)$/', $filename)) {
$im = imagecreatefrompng($path . $filename);
}
$ox = imagesx($im);
$oy = imagesy($im);
$nx = $final_width_of_image;
$ny = floor($oy * ($final_width_of_image / $ox));
$nm = imagecreatetruecolor($nx, $ny);
imagecopyresampled($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);
imagejpeg($nm, $path . $filename);
}
echo "<script type=\"text/javascript\">parent.document.getElementById(\"imageId\").innerHTML = '<img src=\"../pro/{$upload_photo}\" alt=\"\" style=\"max-width:350px;\">'; parent.document.getElementById(\"image_upload_status\").innerHTML = '<p class=\"image_success\"><br><b>Изображение <span class=\"ni\">{$upload_photo}</span> успешно загружено: <span class=\"imgsc\" style=\"color:blue;cursor:pointer;\">в галерею</span></b></p>';</script>";
}
else if (($_FILES['upload_photo']['type'] != 'image/gif' && $_FILES['upload_photo']['type'] != 'image/jpeg' && $_FILES['upload_photo']['type'] != 'image/png'))
{
echo "<script type=\"text/javascript\">parent.document.getElementById(\"image_upload_status\").innerHTML = '<p class=\"image_error\">Недопустимый тип файла</p>';</script>";
}
else if ($_FILES['upload_photo']['size'] > 2024000)
{
echo "<script type=\"text/javascript\">parent.document.getElementById(\"image_upload_status\").innerHTML = '<p class=\"image_error\">Недопустимый размер файла</p>';</script>";
}
else
{
echo "<script type=\"text/javascript\">parent.document.getElementById(\"image_upload_status\").innerHTML = '<p class=\"image_error\">Произошла ошибка при загрузке файла</p>';</script>";
}
}
?>
Просто вроверяйте ширину, если больше 1600, тогда режьте, если нет - просто пропускайте этот блок:
$ox = imagesx($im); // тут ширина картинки
$oy = imagesy($im); // тут высота картинки
if ($ox > 1600) {
$nx = $final_width_of_image;
$ny = floor($oy * ($final_width_of_image / $ox));
$nm = imagecreatetruecolor($nx, $ny);
imagecopyresampled($nm, $im, 0,0,0,0,$nx,$ny,$ox,$oy);
imagejpeg($nm, $path . $filename);
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Шифрую одну и туже строку одним и тем же ключем в пхп и ява на выходе получается разная строкаПодскажите в чем у меня ошибка?
Отправляю по почте сгенерированный на js код, когда на gmail приходит письмо то отображает его совсем не вменяемо
Есть определенные роли у пользователей (администраторы группы N) которые могут редактировать профиль любого пользователя, а точнее личную...