Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт по уменьшению изображения, обработка изображения 
:(
    Опции темы
web_VIP
Дата 8.9.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Есть форма:
<form method="POST" action ="<?php echo($_SERVER['PHP_SELF'])?>">
<input type="file"   name="foto" accept="image/*">
<input type='submit' name='submited'   value="Отправить">
</form>
А дальше идет скрипт, который обрабатывает изображение:
1. Проверяет что у данного изображения разрешение "JPG", если нет то ошибка.
2. Проверяем разрешение, если больше 800*600 то уменьшаем.
3. Записываем измененное фото в папку /foto/
4. Выводим изображение, чуть ниже его разрешение, то есть 800*600,и если оно было меньше, то выводим то что есть, чуть ниже дату занесения фото в папку, и его вес.

PM MAIL   Вверх
WolfON
Дата 8.9.2007, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 604
Регистрация: 19.7.2004

Репутация: нет
Всего: 8



покурите gd или imagemagik
PM MAIL ICQ   Вверх
Vaulter
Дата 8.9.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: нет
Всего: 22



покурите любой скрипт который это делает
 smile  smile 


--------------------
PM MAIL WWW ICQ   Вверх
ewolf
Дата 9.9.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 2
Всего: 18



Google все об этом знает. Уже первая ссылка дает ответ на ваш вопрос.
PM MAIL ICQ   Вверх
Date
Дата 10.9.2007, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.3.2006
Где: Алматы

Репутация: нет
Всего: 3



Форма:


Код

<form method="POST" action ="<?php echo($_SERVER['PHP_SELF'])?>">
<input type="file"   name="myfile" accept="image/*">
<input type='submit' name='submited'   value="Отправить">
</form>



сначало загрузка изображения:



Код

  if(isset($_FILES["myfile"][$i]))
   {
        if (!ereg("image", $_FILES["myfile"]["type"][$i])){
         echo "<b>Файл не является изображением!!! <b>";
         error_add_log($ip_client, 'Файл не является изображением!!! Пользователь('.$autor.')', $link);
         exit();
         }
         else 
        $myfile = $_FILES["myfile"]["tmp_name"][$i];
        $myfile_name = $_FILES["myfile"]["name"][$i];
        $myfile_size = $_FILES["myfile"]["size"][$i];
        $myfile_type = $_FILES["myfile"]["type"][$i];
        $error_flag = $_FILES["myfile"]["error"][$i];
        // Если ошибок не было
        if($error_flag == 0)
        {
            
            // Получаем содержимое файла
            $fp = fopen($myfile,"r");
            $content = fread($fp, filesize($myfile));
            fclose($fp);
    $file='./foto/'.$myfile_name;
            move_uploaded_file ($myfile, $file); 
            
        }


Функция уменьшения JPEG

Код

function resize_jpeg($un_file, $after_resize, $width){    
//chmod ($un_file, 0777);
 
$SOURCE=$un_file;  // исходный файл
$TARGET=$after_resize;     // имя файла для "превьюшки"
$NEWX=100;                 // ширина "превьюшки"
$NEWY=100;                // высота "превьюшки"

  $size = getimagesize($SOURCE);
  if ($size === false) die ('Bad image file!');

  
  $source = imagecreatefromjpeg($SOURCE)
    or die('Cannot load original JPEG');
                // вычисление пропорций 
                if ($size[0]>$size[1]){
                $ratio = $size[0]/$width;
                } else {
                $ratio = $size[1]/$width;
                }
                $X = round($size[0]/$ratio); 
                $Y = round($size[1]/$ratio);    
  // Создаем новое изображение
  $target = imagecreatetruecolor($X, $Y);
  
  // Копируем существующее изображение в новое с изменением размера:
  imagecopyresampled(
    $target,  // Идентификатор нового изображения
    $source,  // Идентификатор исходного изображения
    0,0,      // Координаты (x,y) верхнего левого угла
              // в новом изображении
    0,0,      // Координаты (x,y) верхнего левого угла копируемого
              // блока существующего изображения
    $X,     // Новая ширина копируемого блока
    $Y,     // Новая высота копируемого блока
    $size[0], // Ширина исходного копируемого блока
    $size[1]  // Высота исходного копируемого блока
    );
  imagejpeg($target, $TARGET, 100);
  return $TARGET;
  // Как всегда, не забываем:
  imagedestroy($target);
  imagedestroy($source);
  
  }


теперь проверяем размер если больше то уменьшаем:

Код

$size = getimagesize($file);

  if  ($size[0]<800) || ($size[0]<600)){
        if (($myfile_type=='image/jpeg') or ($myfile_type=='image/pjpeg')){
        $medium= resize_jpeg($file, $file, 600);
        } else {
        print "image is not JPG";}
 }


и вывод самого изображения :

Код

$size = getimagesize($file);
print $size[0].'*'.$size[1].'<br>';
print '<img border=0 src=$file>';


вроде все должно работать...

--------------------
Люди не будьте свиньями, Бросайте мусор в урны.
PM MAIL WWW   Вверх
web_VIP
Дата 10.9.2007, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 8.9.2007

Репутация: нет
Всего: нет



Date Спосибо!
А GD библиотеку обязательсно ставить для этого скрипта?
PM MAIL   Вверх
ewolf
Дата 11.9.2007, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 15.8.2006
Где: г. Москва

Репутация: 2
Всего: 18



Да, поскольку ее функции позволяют загрузить изображение и работать с ним.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Графика | Следующая тема »


 




[ Время генерации скрипта: 0.0946 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.