|
| |
|
|
| |
для: neokortex
(18.07.2007 в 10:21)
| | | >как сделать resize с сохранением пропорций?
Рекомендую воспользоваться моей доработанной функцией и почитать обсуждение из этой темы
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=24389 | |
| |
|
|
| |
|
|
| |
для: Киналь
(18.07.2007 в 11:50)
| | | возможны отказы
см. $valid_types | |
| |
|
|
| |
|
|
| |
для: neokortex
(18.07.2007 в 10:21)
| | | Вот, загрузка изображения с одновременным созданием уменьшенной копии:
<?php
function image_upload($file_arr, $copyright, $path="", $width=100)
{
$filename=$file_arr['name'];
$type=$file_arr['type'];
$valid_types=array('image/jpeg', 'image/png', 'image/gif', 'image/vnd.wap.wbmp');
if (!in_array($type, $valid_types))
die("К сожалению, формат файла не поддерживается.
Допустимы форматы JPEG, PNG, GIF, WBMP");
if (!move_uploaded_file($file_arr['tmp_name'], $path."fotos/$filename"))
die("Произошла ошибка при загрузке файла.
Код ошибки - $file_arr[error]");
//Основной файл закачан, тип проверен. можно работать дальше.
$imagesize=getimagesize($path.'fotos/'.$filename);
$img_x=$imagesize[0];
$img_y=$imagesize[1];
$division=$img_x/$img_y;
$small_x=$width;
$small_y=$small_x/$division;
//Создаем пустое изображение
$small_res=imagecreatetruecolor($small_x, $small_y);
//Создаем изображение из основного файла
switch ($type)
{
case('image/jpeg'):
{
$main_res=imagecreatefromjpeg($path.'fotos/'.$filename);
break;
}
case('image/gif'):
{
$main_res=imagecreatefromgif($path.'fotos/'.$filename);
break;
}
case('image/png'):
{
$main_res=imagecreatefrompng($path.'fotos/'.$filename);
break;
}
case('image/wbmp'):
{
$main_res=imagecreatefromwbmp($path.'fotos/'.$filename);
break;
}
} // end of switch
if (
!imagecopyresampled($small_res, $main_res, 0, 0, 0, 0, $small_x, $small_y, $img_x, $img_y)
)
die("Ошибка при создании уменьшенной копии.");
//записываем на диск копию
if (
!imagejpeg($small_res, $path.'small/small_'.$filename)
)
die("Ошибка при записи уменьшенной копии.");
// Вписываем копирайт
// Пишем черным цветом
$black=imagecolorallocate($main_res, 0, 0, 0);
imagestring($main_res, 5, 9, 9, $copyright, $black);
// Пишем белым цветом; результат - белый с черным контуром
$color=imagecolorallocate($main_res, 255, 255, 255);
imagestring($main_res, 4, 10, 10, $copyright, $color);
switch ($type)
{
case('image/jpeg'):
{
$m_rec=imagejpeg($main_res, $path.'fotos/'.$filename);
break;
}
case('image/gif'):
{
$m_rec=imagegif($main_res, $path.'fotos/'.$filename);
break;
}
case('image/png'):
{
$m_rec=imagepng($main_res, $path.'fotos/'.$filename);
break;
}
case('image/wbmp'):
{
$m_rec=imagewbmp($main_res, $path.'fotos/'.$filename);
break;
}
} // end of switch
if (!$m_rec)
{
die("Ошибка при вписывании копирайта.");
}
//копирайт вписан
//Все кончилось хорошо; уничтожаем все изображения
imagedestroy($main_res);
imagedestroy($small_res);
} // конец функции image_upload
?>
|
| |
| |
|
|
| |
|
|
| | Как изменить размер загружаемого на сервер изображения?
я пользуюсь скриптом любезно предоставленным компанией Softtime.
http://softtime.ru/scripts/upload.php
как сделать resize с сохранением пропорций? | |
| |
|
|
|