Intereting Posts
Можно добавить цвет фона к прозрачному изображению с помощью GD и PHP MySQL Пользовательская переменная в Doctrine и Symfony Установить точность для числа float в PHP Поле первичного ключа не получает подтверждения для уникальности в cakephp PHPMailer: замените идентификатор сообщения по умолчанию mysql не подсчитывает строку дважды, если данные столбца дублируются Добавление Node.js (для уведомлений в режиме реального времени) к существующему PHP-приложению Как правильно получить контент и не нарушать html-теги с помощью strip_tags с substr? Просто: как заменить «все между» на php? Zend Framework 2 – Отправка формы Файл загрузки Codeigniter не работает в Интернете, но работает на localhost Как узнать, что такое пространство имен, URL-адрес, действие мыла и имя метода? Symfony2: проверка подлинности пользователя на основе пути Php проанализировал таблицу html и подсчитал значение <td>, похожее на другое Как я могу автоматически определять дневную экономию на PHP?

Проблемы с вращением и изменением размера больших изображений

После того как пользователь загрузил изображение, я пытаюсь создать его миниатюру. Проблема заключается в том, что когда мой скрипт пытается загрузить большое изображение в память, чтобы перепрограммировать его (например, на iPad на 2448 пикселей x 3264 пикселей), у него заканчивается память при вызове imagecreatefromjpeg . Я не могу увеличить доступную память, потому что это общий сервер, и я не могу установить альтернативные библиотеки изображений по той же причине.

 $name = "upload/1/" . $filename; move_uploaded_file($_FILES['myFile']['tmp_name'], $name); createthumb($name, "upload/1/th_" . $filename, 230, 172); function createthumb($name, $filename, $new_w, $new_h) { global $Postcode; $system=explode('.', $name); if (preg_match('/jpg|jpeg/',$system[1])) { $src_img=imagecreatefromjpeg($name); } if (preg_match('/png/',$system[1])) { $src_img=imagecreatefrompng($name); } $old_x=imageSX($src_img); $old_y=imageSY($src_img); if ($old_x > $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_h/$old_x); } if ($old_x < $old_y) { $thumb_w=$old_x*($new_w/$old_y); $thumb_h=$new_h; } if ($old_x == $old_y) { $thumb_w=$new_w; $thumb_h=$new_h; } $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $thumb_w, $thumb_h, $old_x, $old_y); if (preg_match("/png/",$system[1])){ imagepng($dst_img, $filename); } else { imagejpeg($dst_img, $filename); } imagedestroy($dst_img); } 

Есть ли способ решить эту проблему с помощью оговорки, что я не могу увеличить память или использовать другую библиотеку изображений?