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

Форум PHP

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

 

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

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

тема: скрипт изменяющий размер фото файлов
 
 автор: cccp   (11.01.2006 в 00:25)   письмо автору
 
 

Я решил завести отдельную тему на этот вопрос.

Помоги пожалуста.
Я попытался добавить сюда строчки что бы скрипт переделыывал размер фото файлов , но ничего не получилось.
Вот скрипт что отправляет файл:

<?php 

$dossier_cible 
"../music"

if(isset(
$_FILES['f'])&&isset($_POST['d'])) 

if(
file_exists("$dossier_cible/".basename($_FILES['f']['name']))) die("<html><body><h1>Un fichier du m&#234;me nom existe d&#233;j&#224; !</h1></body></html>"); 

if(!
move_uploaded_file($_FILES['f']['tmp_name'], "$dossier_cible/".basename($_FILES['f']['name']))) die("Echec ! V&#233;rifiez les persmissions du dossier $dossier_cible !"); 
$d substr($_POST['d'],0,60); $fp fopen("$dossier_cible/d/".basename($_FILES['f']['name']),"w"); 
fwrite($fp,$d);fclose($fp); 


?>  


вот что мне подсказали на форуме (а точнее Саня)


<?php 
// $filename - имя проверяемого файла 
// $height - высота, к которой будет приведено изображение 
// $width - ширина, к которой будет приведено изображение 
function is_image($filename$height$width) { 
  
// Массив разрешённых расширений файла 
  
$ext = ("gif""jpg""png""jpeg"); 
  
$explode explode("."$filename); 
  if (
in_array($explode[count($explode) - 1])) { 
    
$size getimagesize($filename); 
    if (
$size[1] > $height || $size[0] > $width) { 
      
resizeimg($filename$filename$height$width); 
    } 
  } else { 
    echo(
"Запрешённый тип файла!"); 
  } 

?>  


Я попытался сам добавить так:


<?php 

$dossier_cible 
"../music"

if(isset(
$_FILES['f'])&&isset($_POST['d'])) 

if(
file_exists("$dossier_cible/".basename($_FILES['f']['name']))) die("<html><body><h1>Un fichier du m&#234;me nom existe d&#233;j&#224; !</h1></body></html>"); 

if(!
move_uploaded_file($_FILES['f']['tmp_name'], "$dossier_cible/".basename($_FILES['f']['name']))) die("Echec ! V&#233;rifiez les persmissions du dossier $dossier_cible !"); 
$d substr($_POST['d'],0,60); $fp fopen("$dossier_cible/d/".basename($_FILES['f']['name']),"w"); 
fwrite($fp,$d);fclose($fp); 

// $filename - имя проверяемого файла 
// $height - высота, к которой будет приведено изображение 
// $width - ширина, к которой будет приведено изображение 
function is_image($f$height$width) { 
  
// Массив разрешённых расширений файла 
  
$ext = ("gif""jpg""png""jpeg"); 
  
$explode explode(".", $); 
  if (
in_array($explode[count($explode) - 1])) { 
    
$size getimagesize($f); 
    if (
$size[1] > $height || $size[0] > $width) { 
      
resizeimg($f$filename$height$width); 
    } 
  } else { 
    echo(
"Запрешённый тип файла!"); 
  } 

?>  

   
 
 автор: Саня   (11.01.2006 в 02:29)   письмо автору
 
   для: cccp   (11.01.2006 в 00:25)
 

Нужно объявить функцию resizeimg(). Вот её код:
<? 
  
function resizeimg($filename$smallimage$w$h
  { 
    
// определим коэффициент сжатия изображения, которое будем генерить 
    
$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_img255255255);        
    if (
$size_img[2]==2)  $src_img imagecreatefromjpeg($filename);                       
    else if (
$size_img[2]==1$src_img imagecreatefromgif($filename);                       
    else if (
$size_img[2]==3$src_img imagecreatefrompng($filename); 

    
// масштабируем изображение     функцией 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]);                 
    
// сохраняем уменьшенную копию в файл 
    
if ($size_img[2]==2)  imagejpeg($dest_img$smallimage);                       
    else if (
$size_img[2]==1imagegif($dest_img$smallimage);                       
    else if (
$size_img[2]==3imagepng($dest_img$smallimage); 
    
// чистим память от созданных изображений 
    
imagedestroy($dest_img); 
    
imagedestroy($src_img); 
    return 
true;          
  }   
?>


Я давал ссылку на тему с этой функцией.
http://softtime.ru/forum/read.php?id_forum=1&id_theme=145

А ещё нужно использовать функцию is_image(), код которой есть в листинге.

   
 
 автор: cccp   (11.01.2006 в 23:16)   письмо автору
 
   для: Саня   (11.01.2006 в 02:29)
 

Извените , но не могли бы вы показать мне, на моём случае, как мне добавить в мой старый код эту функцию?
(или пропустить через неё)
Я смотрел , пробовал сделать сам, но не получается.
Пожалуста.
Буду очень благодарен!


PS:
Толко, на сколько я понял, скрипт сохроняет фото файлы большого размера и делает маленькие, да?
Я же думал найти скрипт который просто будет переделывать перпендекулярно все загруженные фото файлы. Или это не вожможно?

   
 
 автор: cccp   (12.01.2006 в 22:25)   письмо автору
 
   для: cccp   (11.01.2006 в 23:16)
 

Добрый день!
Я пробовал сам и поставил такую строку что бы покозать уменьшенную фотку.


<img src="<?=resizeimg($filename$smallimage133100); ?>">



Я вижу название файла, но фотка не видна потому что не виден тип файла.

Вот так высвечиват:

<img src="1">


Что сделать ?
Помогите пожалуста.
Где ошибка?

   
 
 автор: hatsker   (12.01.2006 в 23:04)   письмо автору
 
   для: cccp   (12.01.2006 в 22:25)
 

Посмотрите тут....


http://softtime.ru/dic/id_dic=335&id_group=0

   
 
 автор: cccp   (13.01.2006 в 13:51)   письмо автору
 
   для: hatsker   (12.01.2006 в 23:04)
 

ok

   
Rambler's Top100
вверх

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