Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Изменение размеров изображения. / 8 сообщений из 8, страница 1 из 1
17.03.2005, 10:47
    #32965172
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
Всем привет.
Передаю через форму файл с картинкой (переменная $pic - имя файла). Как сделать, чтобы php менял размеры этого изображения - по ширине делал фиксировано - 150px, по высоте - пропорционально.
И еще - возможно ли картинку перегнать в другой формат? Т.е. получаем картинку любого попсового формата, и не только меняем размеры, но и переводим ее в jpg независимо от входного формата.

Буду благодарен за любой конструктивный ответ.
...
Рейтинг: 0 / 0
17.03.2005, 10:52
    #32965193
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
поиском по форуму! обсуждалось не раз...
...
Рейтинг: 0 / 0
26.03.2005, 21:16
    #32982583
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
Да, нашел. Но только на изменение размеров. Мне еще необходимо определить формат входного файла (могут быть jpg, jpg (CMYK), tiff, png) и сохранить его в формате jpg (чтобы открывалось на сайтах).
Как это сделать? В FAQ этого сайта есть ссылка на php5.ru, но этот сайт уже закрыт. В других сообщениях я не нашел ответа на вопрос.
...
Рейтинг: 0 / 0
26.03.2005, 21:48
    #32982610
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
...
Рейтинг: 0 / 0
27.03.2005, 23:49
    #32983058
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
* getimagesize
image

Я там не нашел ничего. Точнее, описаны функции загрузки изображений из формата, который известен. А у меня проблема такая, что входной формат неизвестен заранее. Т.е. пришел файл, необходимо распознать его формат и сохранить в JPEG. Желательно на расширение не завязываться, так как расширение можно опознать и так, разбором строки с оригинальным названием файла.
Возможно ли решить эту проблему на php?
...
Рейтинг: 0 / 0
28.03.2005, 00:03
    #32983064
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
Alexey AgafonovТ.е. пришел файл, необходимо распознать его формат GETIMAGESIZE - так лучше видно?
...
Рейтинг: 0 / 0
28.03.2005, 10:58
    #32983366
Alexey Agafonov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
* Alexey AgafonovТ.е. пришел файл, необходимо распознать его формат GETIMAGESIZE - так лучше видно?

ОК, так лучше. Не прочитал, что это функция может больше, чем только узнавать размер.
Спасибо.
...
Рейтинг: 0 / 0
29.03.2005, 09:21
    #32985365
*****
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Изменение размеров изображения.
На пхп5 было примерно следующее:
я сам успешно пользовался этой функцией в интранете, пока не вынес в интернет, там сразу картинка объемом в 150 килобайт положила сервер с ошибкой
Код: plaintext
1.
Allowed memory size of  8388608  bytes exhausted (tried to allocate  9088  bytes) 
Везде пишут про то, что надо увеличить в настройках пхп параметр 'memory_limit' до 16 мегабайт, а если и это не помогает - тогда искать ошибку в скрипте...

Ищу - не помогает, когда не использую генерацию превьюшек при помощи это функции - все ОК.

Еще пишут про то, что фнукции типа "imagecreatefrom*" создают сперва файл своего формата, работают с ним, а потом пишут в тотже JPEG.
Так вот именно для генерации этого своего типа файла и не хватает места у пхп :-(
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
    /**
    * @return boolean
    * @param string $src- имя исходного файла
    * @param string $dest- имя генерируемого файла
    * @param int $width- ширина генерируемого изображения, в пикселях
    * @param int $height- высота генерируемого изображения, в пикселях
    * @param int $rgb- цвет фона, по умолчанию - белый
    * @param int $quality - качество генерируемого JPEG, по умолчанию - максимальное (100)
    * @desc Генерация превьюшек
    */
    function makeImagePreviw($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality= 100 )
    {
//      ini_set('memory_limit', 16 );
      if (!file_exists($src)) return false;
      $size = getimagesize($src);
      //ограничиваем размер файла 
      if (filesize($src)> 153600 ){
        return false;
      } 
      if ($size === false) return false;
      // Определяем исходный формат по MIME-информации, предоставленной
      // функцией getimagesize, и выбираем соответствующую формату
      // imagecreatefrom-функцию.
      $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+ 1 ));
      $icfunc = "imagecreatefrom" . $format;
      if (!function_exists($icfunc)) return false;
      $x_ratio = $width / $size[ 0 ];
      $y_ratio = $height / $size[ 1 ];
      $ratio       = min($x_ratio, $y_ratio);
      $use_x_ratio = ($x_ratio == $ratio);
      $new_width   = $use_x_ratio  ? $width  : floor($size[ 0 ] * $ratio);
      $new_height  = !$use_x_ratio ? $height : floor($size[ 1 ] * $ratio);
      $new_left    = $use_x_ratio  ?  0  : floor(($width - $new_width) /  2 );
      $new_top     = !$use_x_ratio ?  0  : floor(($height - $new_height) /  2 );
      $isrc = $icfunc($src);
      $idest = imagecreatetruecolor($width, $height);
      imagefill($idest,  0 ,  0 , $rgb);
      imagecopyresampled($idest, $isrc, $new_left, $new_top,  0 ,  0 ,  $new_width, $new_height, $size[ 0 ], $size[ 1 ]);
      imagejpeg($idest, $dest, $quality);
      imagedestroy($isrc);
      imagedestroy($idest);
      return true;
    }
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Изменение размеров изображения. / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]