|
|
|
|
|
для: cernos
(17.06.2005 в 18:05)
| | Спасибо конечно но с уменьшением я уже давно разобрался суть в скрипте по обрезанию изображения. Скрипт выдаёт чёрнобелое изображение почему я впринципе понимаю нужно добавить в скрипт строки определения цвета если я прав, тока что то неполучается. | |
|
|
|
|
|
|
|
для: sata
(17.06.2005 в 15:49)
| | Вот код уменьшения изображения
файл назвать preview.php
<?
$file_name=$_GET['image'];
$y=80;#px //будущий размер изображения в пикселях по высоте
$simg = getimagesize($file_name);
$h = $y;
$w = $h*$simg[0]/$simg[1];
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $w/$h;
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($w, $h);
// зальём его белым цветом
imagefill($dest_img, 0, 0, 0xFFFFFF);
// получим размеры исходного изображения
$size_img = getimagesize($file_name);
// получим коэффициент сжатия исходного изображения
$src_ratio=$size_img[0]/$size_img[1];
// здесь вычисляем размеры, чтобы при масштабировании сохранились
// 1. Пропорции исходного изображения
// 2. Исходное изображение полностью помещалось на маленькой копии
// (не обрезалось)
if ($src_ratio>$ratio)
{
$old_h=$size_img[1];
$size_img[1]=floor($size_img[0]/$ratio);
$old_h=floor($old_h*$h/$size_img[1]);
}
else
{
$old_w=$size_img[0];
$size_img[0]=floor($size_img[1]*$ratio);
$old_w=floor($old_w*$w/$size_img[0]);
}
// исходя из того какой тип имеет изображение
// выбираем функцию создания
$path_parts= pathinfo($file_name);
$ext = $path_parts["extension"];
switch ($ext)
{
case "jpg":
$src_img = imagecreatefromjpeg($file_name);
break;
case "gif":
$src_img = imagecreatefromgif($file_name);
break;
case "png":
$src_img = imagecreatefrompng($file_name);
break;
default:
break;
exit();
};
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $w - ширина уменьшенной копии
// $h - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
// в зависимости от типа файла выбирвем функцию сохранения в файл
switch($ext)
{
case "jpg":
header("Content-type: ".image_type_to_mime_type(IMAGETYPE_JPEG));
imagejpeg($dest_img);
break;
case "gif":
header("Content-type: ".image_type_to_mime_type(IMAGETYPE_JPEG));
imagejpeg($dest_img);
break;
case "png":
header("Content-type: ".image_type_to_mime_type(IMAGETYPE_PNG));
imagepng($dest_img);
break;
default:
exit();
break;
}
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
?>
подключать изображение <img src='preview.php?image=address_image'>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(23.04.2005 в 15:06)
| | Непонятно а каким макаром зделать так чтобы на выходе картинка получалась цветная, а то на данный момент она чёрно-белая | |
|
|
|
|
|
|
|
для: sata
(23.04.2005 в 14:14)
| | В теме по ссылке описывается функция уменьшения изображений.
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=145
А по этой ссылке находится статья по работе с графикой средствами PHP.
http://www.softtime.ru/info/articlephp.php?id_article=38 | |
|
|
|
|
|
|
|
для: sata
(22.04.2005 в 09:54)
| | А ещё вопросик один а как осуществить динамическое уменьшение изображения типа при аплоэде на сервер оно автоматически уменьшалось до определённых параметров. Спасибо | |
|
|
|
|
|
|
|
для: Dimrix
(20.04.2005 в 09:10)
| | Предложеная статья - это основа и при недолгих размышлениях ясно - как не только изменить размер, но и обрезать графику, если ето делать при закачке файла на сервер - процессорное время тратится один раз и при просмотре не используется + затраты на создание - ЕДИНОВРЕМЕННЫЕ! А в последствии все автоматизировано. Ну и конечно приятнее серым веществом щевелить, чем выполнять однообразные манипуляции с адобовскими продуктами. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(22.04.2005 в 04:40)
| | Спасибо | |
|
|
|
|
|
|
|
для: sata
(21.04.2005 в 18:10)
| | Можно по разному преобразовывать изображения.
1. Можно обрезать во время добавления
2. Можно преобразовывать изображения "на лету", не сохраняя изменения в файлах.
Приведу код для второго варианта. Первый файл img.php содержит код, обрезающий изображения.
img.php
<?
$filename = $_GET["file"];
// Известно, что исходное изображение нужно обрезать
// на 150 пикселей. Заносим это значение в переменную
$clip = 150;
if ($filename=="") exit();
// Создаем исходное изображение
$image = imagecreatefromjpeg($filename);
if ($image=="") exit;
// Определяем размеры исходного изображения
$size = getimagesize($filename);
// Вычисляем размеры нужного изображения,
// которые равны размеру исходного изображения - 150 пикселей снизу
$img_dst = imagecreate($size[0], $size[1]-$clip);
// Копируем само изоббражение
imagecopy($img_dst, $image, 0, 0, 0, 0, $size[0], $size[1]);
// Выводим изображение в браузер
header("Content-type: image/jpeg");
imagejpeg($img_dst);
// Удаляем изображения из памяти
imagedestroy($image);
imagedestroy($img_dst);
?>
|
Этот файл нужно подставлять в параметр src тега <img>
на страницу, где используются изображения
<img src="img.php?file=img.jpg" border="0" alt="">
|
Имя файла, который необходимо преобразовать, передается в параметре ?file=img.jpg. И на странице отображается уже измененая картинка. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(21.04.2005 в 09:57)
| | 1. да установлено
2. да точно знаю что на сколько убрать | |
|
|
|
|
|
|
|
для: sata
(21.04.2005 в 09:36)
| | Для начала, хотя бы ответье на мои вопросы. | |
|
|
|
|