Начнем с логики. Первый шаг – загрузка самого изображения на сервер:
<form action="create_img.php" method="post" enctype="multipart/form-data" name="form1" id="form1">- вот простая форма, с полем для загрузки изображения, а дальше код самого обработчика:
<label>
<input type="file" name="file" id="file"/>
</label>
<p><input name="add" type="hidden" value="add" />
<label>
<input type="submit" name="button1" value="Добавить"/>
</label>
</p>
</form>
if (!empty($_FILES['file']['tmp_name']))
{
$filename=$_FILES['file']['tmp_name'];
}
else
{
$file='none';
}
resizer($filename);
Можно заметить, что здесь добавлена проверка: а было ли введено имя файла в форму для загрузки. После этого файл находится под именем ‘filename’ во временной папке сервера.
Дальше – самое сложное, сама функция. Основные этапы работы просты до безобразия:
А вот и сама функция resizer() принимающая в качестве параметра имя файла
Ну вот как-то так...function resizer($filename)
{
//Получаем размер изображения
$size = getimagesize ($filename);
//print_r($size);
//echo('<br>'.$size['mime']);
$w=$size['0'];
$h=$size['1'];
//echo('<br>Высота = '.$h.'<br>Ширина = '.$w);
$type = $size['mime'];
//Определяем нужные размеры изображения
$max_w = 200;
$m_h = ($max_w*$h/$w);
$max_h = round($m_h, 0);switch ($type)
{
//Формат jpg
case 'image/jpeg':
$mtime=microtime();
$mtime=str_replace('.','',$mtime);
$mtime=str_replace(' ','',$mtime);
$new_img=md5($mtime).'.jpg';
//echo($new_img);
//Создаем изображение из файла
$src_img = imagecreatefromjpeg($filename);
if (!$src_img)
{
echo('Невозможно создать изображение');
}
/* else
{
echo('<br>Изображение создано');
}
*/
//Создаем пустой файл
$empty_img = imagecreatetruecolor($max_w, $max_h);
//Копируем из файла в пустое изображение
$res_img = imagecopyresampled($empty_img, $src_img, 0, 0, 0, 0, $max_w, $max_h, $w, $h);
$new_img = imagejpeg($empty_img, 'image/'.$new_img, 100);
break;
//Формат png
case 'image/png':
$mtime=microtime();
$mtime=str_replace('.','',$mtime);
$mtime=str_replace(' ','',$mtime);
$new_img=md5($mtime).'.png';
// echo($new_img);
//Создаем изображение из файла
$src_img = imagecreatefrompng($filename);
if (!$src_img)
{
echo('Невозможно создать изображение');
}
else
{
echo('<br>Изображение создано');
}
//Создаем пустой файл
$empty_img = imagecreatetruecolor($max_w, $max_h);
//Копируем из файла в пустое изображение
$res_img = imagecopyresampled($empty_img, $src_img, 0, 0, 0, 0, $max_w, $max_h, $w, $h);
$new_img = imagepng($empty_img, 'image/'.$new_img, 100);
break;
//Формат gif
case 'image/gif':
$mtime=microtime();
$mtime=str_replace('.','',$mtime);
$mtime=str_replace(' ','',$mtime);
$new_img=md5($mtime).'.gif';
// echo($new_img);
//Создаем изображение из файла
$src_img = imagecreatefromgif($filename);
if (!$src_img)
{
echo('Невозможно создать изображение');
}
else
{
echo('<br>Изображение создано');
}
//Создаем пустой файл
$empty_img = imagecreatetruecolor($max_w, $max_h);
//Копируем из файла в пустое изображение
$res_img = imagecopyresampled($empty_img, $src_img, 0, 0, 0, 0, $max_w, $max_h, $w, $h);
$new_img = imagegif($empty_img, 'image/'.$new_img, 100);
break;
}
//-------------Конец функции resizer()--------------------
}
© 2010-2024 При использовании материалов ссылка на сайт www.webchaynik.ru обязательна