Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Обработка графики средствами php

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: sata   (18.06.2005 в 14:10)   письмо автору
 
   для: cernos   (17.06.2005 в 18:05)
 

Спасибо конечно но с уменьшением я уже давно разобрался суть в скрипте по обрезанию изображения. Скрипт выдаёт чёрнобелое изображение почему я впринципе понимаю нужно добавить в скрипт строки определения цвета если я прав, тока что то неполучается.

   
 
 автор: 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_img000xFFFFFF);
    
// получим размеры исходного изображения
    
$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_partspathinfo($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_img0000$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'>

   
 
 автор: sata   (17.06.2005 в 15:49)   письмо автору
 
   для: glsv (Дизайнер)   (23.04.2005 в 15:06)
 

Непонятно а каким макаром зделать так чтобы на выходе картинка получалась цветная, а то на данный момент она чёрно-белая

   
 
 автор: 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   (23.04.2005 в 14:14)   письмо автору
 
   для: sata   (22.04.2005 в 09:54)
 

А ещё вопросик один а как осуществить динамическое уменьшение изображения типа при аплоэде на сервер оно автоматически уменьшалось до определённых параметров. Спасибо

   
 
 автор: $OMEGA   (22.04.2005 в 10:12)   письмо автору
 
   для: Dimrix   (20.04.2005 в 09:10)
 

Предложеная статья - это основа и при недолгих размышлениях ясно - как не только изменить размер, но и обрезать графику, если ето делать при закачке файла на сервер - процессорное время тратится один раз и при просмотре не используется + затраты на создание - ЕДИНОВРЕМЕННЫЕ! А в последствии все автоматизировано. Ну и конечно приятнее серым веществом щевелить, чем выполнять однообразные манипуляции с адобовскими продуктами.

   
 
 автор: sata   (22.04.2005 в 09:54)   письмо автору
 
   для: glsv (Дизайнер)   (22.04.2005 в 04:40)
 

Спасибо

   
 
 автор: 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$image0000$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. И на странице отображается уже измененая картинка.

   
 
 автор: sata   (21.04.2005 в 18:10)   письмо автору
 
   для: glsv (Дизайнер)   (21.04.2005 в 09:57)
 

1. да установлено
2. да точно знаю что на сколько убрать

   
 
 автор: glsv (Дизайнер)   (21.04.2005 в 09:57)   письмо автору
 
   для: sata   (21.04.2005 в 09:36)
 

Для начала, хотя бы ответье на мои вопросы.

   

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования