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

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

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

ОК, так лучше. Не прочитал, что это функция может больше, чем только узнавать размер.
Спасибо.
...
Рейтинг: 0 / 0
(PHP) Изменение размеров изображения.
    #32985365
*****
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На пхп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
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Изменение размеров изображения.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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