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

Форум PHP

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

 

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

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

тема: фоторесайз
 
 автор: prostonau   (28.09.2005 в 18:20)   письмо автору
 
 

Переделал вашу фунуцию(под разные формат) и она стала слегка кривовато работать!
Кушает не все *.jpg не могу понять почему.

<?
  
// ФОТО РЕСАЙЗ
  // Функция создающая уменьшенную копию фотографии $filename,
  // которая помещается в файл $smallpicture
  // Уменьшенный вариант имеет ширину и высту равную
  // $w и $h пикселам, соответственн.
  
function resizeimg($filename$smallpicture$w$h)
  {
    
// Определим формат фала изображения
    
$type strtolower(strrchr($filename"."));  
    
// Имя файла с масштабируемым изображением
    
$filename "../".$filename;
    
// Имя файла с уменьшенной копией.
    
$smallpicture "../".$smallpicture;    
    
// определим коэффициент сжатия изображения, которое будем генерить
    
$ratio $w/$h;
    
// получим размеры исходного изображения
    
$size_img getimagesize($filename);
    
// получим коэффициент сжатия исходного изображения
    
$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);       
    
// создаем изображение из файла    

     
switch($type)
          {
           case 
'.gif'// GIF
              
$src_img imagecreatefromgif($filename);
              break;
            case 
'.jpg'// JPG
              
$src_img imagecreatefromjpeg($filename);  
              break;
            case 
'.png'// PNG
              
$src_img imagecreatefrompng($filename);  
              break;
           }
    
// масштабируем изображение     функцией 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($type)
          {
           case 
'.gif'// GIF
                  
imagegif($dest_img$smallpicture);   
              break;
            case 
'.jpg'// JPG
                  
imagejpeg($dest_img$smallpicture);   
              break;
            case 
'.png'// PNG
                  
imagepng($dest_img$smallpicture);   
              break;
           }
    
// чистим память от созданных изображений
    
imagedestroy($dest_img);
    
imagedestroy($src_img);
    return 
true;         
  } 
?>

   
 
 автор: cernos   (29.09.2005 в 11:30)   письмо автору
 
   для: prostonau   (28.09.2005 в 18:20)
 

>Кушает не все *.jpg не могу понять почему.
Всмысле кушает не все jpg?
Может просто у вас не jpg файлы,
бывает такое что сохраняют не правильно файлы, т.е. файл *.bmp а при сохранении указан *.jpg
Конечно в таком случае он не будет его обрабатывать или же в чём то другом проблема?

   
 
 автор: prostonau   (29.09.2005 в 15:07)   письмо автору
 
   для: cernos   (29.09.2005 в 11:30)
 

сначала не кушал, т.к.
"JPG" и "jpg" - разные при сравнении строк =)
После дороботки до "jpg"
В локале стало все работать, но на хосте не работает, т.е. не подцепляются картинки, которые подцепляются в локале.
хотя gif, png работают.

   
 
 автор: cernos   (29.09.2005 в 16:20)   письмо автору
 
   для: prostonau   (29.09.2005 в 15:07)
 

Дело в том что на хосте у вас стоит PHP ниже 5 версии, а у вас используется
функция strtolower() - которая появляется начиная с PHP 5!

Вместо функции strtolower сделайте замену больших букв на маленькие используйте функцию str_replace();

$text="JPG,PNG,GIF";

$text=str_replace("J",'j',$text);
$text=str_repace("P",'p',$text);
$text=str_replace("G",g',$text);
$text=str_repace("N",'n',$text);
$text=str_replace("I",'i,$text);
$text=str_repace("F",'f',$text);

   
 
 автор: OZ_   (30.09.2005 в 01:16)   письмо автору
 
   для: cernos   (29.09.2005 в 16:20)
 

Бред. strtolower есть и в 3 и в 4 php.

FM:
strtolower
(PHP 3, PHP 4 )
strtolower -- Make a string lowercase
Description
string strtolower ( string str)
Returns string with all alphabetic characters converted to lowercase. 
Note that 'alphabetic' is determined by the current locale. This means that in i.e. the default "C" locale, characters such as umlaut-A (Д) will not be converted. 
Пример 1. strtolower() example
<?php
$str 
"Mary Had A Little Lamb and She LOVED It So";
$str strtolower($str);
echo 
$str// Prints mary had a little lamb and she loved it so
?>  

   
 
 автор: cernos   (05.10.2005 в 13:34)   письмо автору
 
   для: OZ_   (30.09.2005 в 01:16)
 

Бред не бред!
А вот на хосте с PHP4 не работает, тупо отказывается работать!
Вот и думай...

   
 
 автор: glsv (Дизайнер)   (30.09.2005 в 04:56)   письмо автору
 
   для: prostonau   (29.09.2005 в 15:07)
 

А какие именно файлы не подцепляются? С прописными буквами в расширении?
Приведите имена таких файлов.

   
 
 автор: prostonau   (30.09.2005 в 12:33)   письмо автору
 
   для: glsv (Дизайнер)   (30.09.2005 в 04:56)
 

6_R_T_20.jpg - good

100.jpg - bad

   
Rambler's Top100
вверх

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