Сжатие фотографии при загрузке на сервер.

Статус
В этой теме нельзя размещать новые ответы.

mixwell

Новичок
т.е. я говорю о том можно ли сжать изображение перед вызовом функции move_uploaded_file, либо уже после копирования уменьшить фото(например, с ~2мб до ~200kb)?
 

kode

never knows best
я так понимаю стоит ограничение на upload_max_size (или как там оно)? Проблема решается через cgi скрипты.....

Если нет то всё проще чем ты думаешь....ты главное обьясни в каком месте ограничение стоит?
 

mixwell

Новичок
Да дело то не в ограничении. Файл может загружаться и 2 и 5 мегобайт. Это я хочу сделать, чтобы принятый файл сжимался в целях экономии места на сервере.
 

Bollitore

Новичок
mixwell
Я это понимаю) я говорю о том, что можно ли сжать изображение, перед тем моментом, как оно будет скопировано из временной папки в нужную.
_____________________________________________

На примере с файлами формата png
.....
// Берется оргигинал изображения и читается
$OrigImage = imagecreatefrompng ('имя _изображения.png');
$OrigX = imagesx ($OrigImage); //размер по X
$OrigY = imagesy ($OrigImage); //размер по Y
// затем - создаешь уменьшенное изображение:
$wimage = ImageCreate ($x, $y); // где X - Y -новые (уменьшенные размеры) - ты их сам задаешь
// уменьшаешь исходное изображение до размеров X-Y:
ImageCopyResize ($wimage, $OrigImage, 0,0,0,0, $x, $y, $OrigX, $OrigY);
// кидаешь это (сжатое) изображение в нужную папку
imagepng ($wimage, "..\имя нужной папки\Новое_имя.png");
....
 

Bollitore

Новичок
Допустил ошибку в команде - не
ImageCopyResize ($wimage, $OrigImage, 0,0,0,0, $x, $y, $OrigX, $OrigY);
а
ImageCopyResized ($wimage, $OrigImage, 0,0,0,0, $x, $y, $OrigX, $OrigY);
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
мальчик просто хочет чуда, быстро и нашару :)

ему надо, чтобы юзер выбирал любой файл и во время передачи картинка волшебно сжалась - то же разрешение, но меньший размер

сжатие "перед вызовом функции move_uploaded_file" возможно только java-апплетом, extension-ами или специальными отдельными программами (google picasa, утилита yahoo и т.п.)
при этом они уменьшают размер и снижают качество


mixwell, забей, напиши, что не получится ибо провайдер не разрешает

-~{}~ 24.04.08 14:14:

все что можно толковое сказать - ему уже посоветовали
закрывайте флейм
 

fixxxer

К.О.
Партнер клуба
если safe_mode выключен то никто не мешает проверить is_uploaded_file и вместо move_uploaded_file использовать gd
 

mixwell

Новичок
grigori "мальчик просто хочет чуда, быстро и нашару"
Читайте повнимательнее, мальчик. Я денег за это плачу
 

kode

never knows best
на то что вы предлагает можно только бутылку пива хорошего купить :)

могу вам как решение предлагать сохранять всё в gif, либо, как уже говорили, http://www.php.net/manual/ru/function.imagecopyresampled.php

-~{}~ 24.04.08 17:04:

либо

bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )

те например

$im = imagecreatefrompng($_FILE['new_image']['tmp_name']);
imagejpeg($im,$newfilename,40);

но никто не гарантирует что файл будет 200 кб.
 

Sluggard

Новичок
т.е. я говорю о том можно ли сжать изображение перед вызовом функции move_uploaded_file, либо уже после копирования уменьшить фото
Так и в чем собственно проблема? Загрузил фотку. Заресайзил и сохранил. Оригинал удалил.
 

dimagolov

Новичок
Sluggard, ну большой jpeg (метров 5-7) чтобы загрузить gd в память для сжатия потребует 60-80 оперативки скрипта.

собственно оригинал загруженний и так из временной папки убъется как только скрипт закончит работу.
 

kvf77

Red Devil
Тема закрыта.

Проблемы личного характера и бессмысленные споры между участниками не являются предметом обсуждения форума.
Обсуждайте их в привате.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху