[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка, изменение изображения
alex107
смысл заключается в том, что бы скрипт загружал изображение на сервер и изменял его размер до 640*480 px.

написал скрипт загрузки изображения
 <?php
$dir = 'img/';
$file = $dir.basename($_FILES['file']['name']);
if (copy($_FILES['file']['tmp_name'], $file))
{
echo "<h3>Файл занружен</h3>";
echo "<img src=\"$uploadfile\">";
}
else { echo "<h3>Ошибка!</h3>"; exit; }
?>
все норм, но изменение размера не могу вообще сделать, не знаю как!! (((( читал это: http://www.php.ru/manual/features.file-upload.html (и др. статьи) не могу разобраться, если кто может помогите, да, я знаю что это наглость, но я правда не могу!!! :( уже 4 дня сижу с этим... ((
alex107
нашел еще одну статью (которую еще не читал) http://www.codenet.ru/webmast/php/Image-Resize-GD/ щас почитаю может разберусь.... )
sergeiss
Найди функцию imagecopyresampled и примеры её использования - это то, что тебе нужно. В интернете много инфы. Даже в том же мануале, про который ты говорил в первом сообщении.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
zsaz
Цитата (sergeiss @ 16.11.2010 - 14:41)
Найди функцию imagecopyresampled и примеры её использования - это то, что тебе нужно. В интернете много инфы. Даже в том же мануале, про который ты говорил в первом сообщении.

А если нужно залить изображение в PNG и при этом сохранить прозрачность??
т.е. нам нужно не копировать изображение в новое, а просто обрезать. Какой функцией это лучше сделать, ведь imagecopyresampled как я понял не поможет....

_____________
sergeiss
Цитата (zsaz @ 4.12.2010 - 12:33)
т.е. нам нужно не копировать изображение в новое, а просто обрезать. Какой функцией это лучше сделать, ведь imagecopyresampled как я понял не поможет....

Тогда здесь поможет зайти по ссылке у меня в подписи в он-лайн хэлп ПХП (или скачать полный хэлп к себе на комп) и просмотреть там все функции, которые начинаются со слова image.... Я тебя уверяю smile.gif, что там ты найдешь то, что надо.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
sharki
Держи мной припасенную хорошую функцию для создания превьюшек

function resizeimg($big, $small, $width, $height,$putch) {


// $putch - путь до загруженного изображения
// $big - название большого изображения
// $small - будущее название маленького изображение, которое будет находится в той же папке где и большое,
// или можно изменить путь вот тут вручную $small = "/min_img/".$small;
// $width, $height ширина и высота превьюшки ( размеры делаются пропорционально не меняя качества)



// имя файла с маштабируемым изображением

$big = $putch.$big;

// имя файла с уменьшенной копией
$small = $putch.$small;

//определиям коэфицент сжатия генерируемого изображения
$ratio = $width/$height;

// получаем размеры исходного изображения
$size_img = getimagesize($big);
list($width_src, $height_src) = getimagesize($big);

// если размеры меньше, то маштабирование не нужно
if(($width_src<$width) && ($height_src<$height)) {
copy($big, $small);
return true;
}

// получаем коэфицент сжатия исходного изображения
$src_ratio = $width_src/$height_src;

// вычисляем размеры уменьшенной копии, чтобы при мащтабировании сохранились пропорции исходного изображения
if ($ratio<$src_ratio) {
$height = $width/$src_ratio;
}
else {
$width = $height*$src_ratio;
}
// создаем пустое изображение п заданным размерам
$dest_img = imagecreatetruecolor($width,$height);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2] == 2) $src_img = imagecreatefromjpeg($big);
else if ($size_img[2] == 1) $src_img = imagecreatefromgif($big);
else if ($size_img[2] == 3) $src_img = imagecreatefrompng($big);

// маштабируем изображение функцией imagecopysapled()
// $dest_img - уменьшенная копия
// $src_img - исходное изображение
// $width - ширина уменьшенной копии
// $height - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $srze_img[1] - высота исходного изображения


imagecopyresampled($dest_img,
$src_img,
0,
0,
0,
0,
$width,
$height,
$width_src,
$height_src);

// сохраняем уменьшенную копию в файл
if ($size_img[2]==2) imagejpeg($dest_img,$small);
else if ($size_img[2]==1) imagegif($dest_img,$small);
else if ($size_img[2]==3) imagepng($dest_img,$small);
// очищаем память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.