Intereting Posts
Как получить предложения от Solr Server в переменной PHP проверять одинаковые строки в цикле while и помещать их в отдельную таблицу PHP: обмен статической переменной между потоками Пользовательский диспетчер Zend AMF Laravel возвращает пустую страницу только на определенных маршрутах Как использовать XMLReader для анализа множественных, идентично названных атрибутов элемента / подэлемента XML Как определить динамическую конфигурацию с помощью TreeBuilder? Laravel Eager Loading Полиморфные отношения Использование jQuery с Selenium WebDriver. Как передать объект JSON в WebElement? PHP Script в моих файлах WordPress. Пожалуйста, расшифруйте или помогите мне Удалить Поиск учебника для начинающих Kohana для PHP Экран загрузки JQuery для покрытия большого запроса mysql через PHP? Как получить длину самой длинной строки в массиве база данных, не принимающая таблицу PHP включает файл в динамическом URL-адресе

Обрезание изображения с помощью imagecopyresampled () в PHP без fopen

Я пытаюсь обрезать и изображение с помощью PHP и библиотеки GD и, похоже, не может заставить обрезку работать. Я хотел бы обрезать черные полосы из следующего изображения и изменить его размер до меньшего размера (200 на 112).

Изображение, расположенное здесь

Ниже мой PHP-код.

<? function load_file_from_url($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $str = curl_exec($curl); curl_close($curl); return $str; } class cropImage{ var $imgSrc,$myImage,$thumb; function setImage($image) { //Your Image $this->imgSrc = $image; //create image from the jpeg $this->myImage = imagecreatefromstring($this->imgSrc) or die("Error: Cannot find image!"); imagecopyresampled($this->thumb, $this->myImage, 0, 0, 0, 45, 200, 112, 480, 270); } function renderImage() { header('Content-type: image/jpeg'); imagejpeg($this->thumb); imagedestroy($this->thumb); //imagejpeg($this->myImage); //imagedestroy($this->myImage); } } $image = new cropImage; $image->setImage(load_file_from_url($_GET['src'])); $image->renderImage(); ?> 

Я получаю следующие ошибки:

 PHP Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/html/root/vic/boilerBytes/thumbnail.php on line 21 [Tue Aug 09 22:57:06 2011] [error] PHP Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/html/root/vic/boilerBytes/thumbnail.php on line 26 [Tue Aug 09 22:57:06 2011] [error] PHP Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/html/root/vic/boilerBytes/thumbnail.php on line 27 

Когда я раскомментирую два метода с параметрами $this->myImage и комментирую два метода с параметрами $this->thumb , исходное изображение отображается правильно, поэтому я думаю, что проблема возникает с imagecopyresampled() . Примечание. У меня нет возможности включить fopen, поэтому я использую завиток. Любая помощь будет принята с благодарностью!

Вам необходимо создать ресурс изображения для места назначения, прежде чем использовать его в imagecopyresampled() .

Добавьте это до imagecopyresampled()

 $this->thumb = imagecreatetruecolor(200, 112); 

Обновить

Для обрезки вам следует, скорее всего, просто взглянуть на imagecopy() вместо imagecopyresampled()

Не стесняйтесь взглянуть на мой класс манипуляции с изображениями для некоторых идей – https://gist.github.com/880506