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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: размер изображения
 
 автор: Alexx   (31.03.2006 в 16:26)   письмо автору
 
 


<html> 
<body> 
<?php 

     
echo "<img src='img_prev.php?id=2.jpg&m=1'>"
?> 
</body> 
</html> 


как сжать скриптом 'img_prev.php?id=2.jpg&m=1' картинку, и вывести её на странице ?

   
 
 автор: malish   (31.03.2006 в 16:43)   письмо автору
 
   для: Alexx   (31.03.2006 в 16:26)
 

Что значит сжать? Preview типа сделать?

   
 
 автор: Artemy   (31.03.2006 в 16:55)   письмо автору
 
   для: Alexx   (31.03.2006 в 16:26)
 

Как сжать по объему или по размерам?

По размерам
<?php 
   $filename 
"iamge.gif"//Имя файла
   
$w 300//Нужные размер по ширине
   
$h 300//Нужные размер по высоте
   //определим коэффициент сжатия изображения, которое будем генерить
   
$ratio=$w/$h;
   
//получим размеры исходного изображения
   
$size_img=getimagesize($filename);
   
//Если размеры меньше, то масштабирования не нужно
   
if(($size_img[0]<$w) && ($size_img[1]<$h)){
     return 
true;
   }
   
//получим коэффициент сжатия исходного изображения
   
$src_ratio=$size_img[0]/$size_img[1];
   
//Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
   //пропорции исходного изображения
   
if($ratio<$src_ratio){
     
$h $w/$src_ratio;
   }else{
     
$w $h*$src_ratio;
   }
   
//создадим пустое изображение по заданным размерам
   
$dest_img=imagecreatetruecolor($w,$h);
   
$white=imagecolorallocate($dest_img,255,255,255);
   if(
$size_img[2]==2){
     
header ("Content-type: image/jpeg"); 
     
$src_img=imagecreatefromjpeg($filename);
   }elseif(
$size_img[2]==1){
     
header ("Content-type: image/gif"); 
     
$src_img=imagecreatefromgif($filename);
   }elseif(
$size_img[2]==3){
     
header ("Content-type: image/png"); 
     
$src_img=imagecreatefrompng($filename);
   }
   
imagecopyresampled($dest_img,$src_img,0,0,0,0,$w,$h,$size_img[0],$size_img[1]);
   
// сохраняем уменьшенную копию в файл
   
if($size_img[2]==2){
     
imagejpeg($dest_img);
   }elseif(
$size_img[2]==1){
     
imagegif($dest_img);
   }elseif(
$size_img[2]==3){
     
imagepng($dest_img);
   }
?> 

   
 
 автор: Alexx   (31.03.2006 в 18:53)   письмо автору
 
   для: Artemy   (31.03.2006 в 16:55)
 

Artemy, вставляю твой код в файл img_prev.php файл указываю правильно, в итоге ничего не получается в чём может быть ошибка ?

   
 
 автор: Artemy   (03.04.2006 в 10:32)   письмо автору
 
   для: Alexx   (31.03.2006 в 18:53)
 

Странно у меня работает! :-|

Виной тому, что у Вас он не работает, может быть несколько причин:
1) У Вас на машине или на хостинге не установлена библиотека GDLib, при помощи которой работает данный скрипт.
2) Данный скрипт работает только с этими графифическими форматами: GIF, JPEG, PNG
3) Глупо конечно говорить, но может Вы путь к картинке не правильно указали?

   
Rambler's Top100
вверх

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