13 / 13 / 11
Регистрация: 24.04.2011
Сообщений: 109
1

Обрезка изображения в GD2

09.09.2014, 23:56. Показов 1886. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток товарищи. Признаюсь, я довольно плохо знаком с gd2 поэтому скорее всего заблудился в трех соснах)) В общем имеется файл, которому передается несколько параметров и ссылка на файл (результат работы jcrop API для jQuery). Скрипт должен взять кусок из передаваемого файла по указанным координатам и запихнуть его в новый файл размером 100х100 (все параметры извне предаются - проверено). Переданный кусок имеет соотношение сторон 4:4 (квадрат). Но после работы скрипт выдает примерно такое:
Изображение "http://localhost/.../crop.php?width=206 height=206....jpg" не может быть показано, так как содержит ошибки
В указанной директории jpeg файл создается, но с малость сбитыми координатами (изображение то уходит немного ниже и правее, то ширина и высота вырезанного куска получается меньше указанного).
Вот код скрипта:
PHP
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
    if ($_SERVER['REQUEST_METHOD'] == "GET"){
       if ( isset($_GET['width']) &&
          isset($_GET['height']) &&
          isset($_GET['x']) &&
          isset($_GET['y']) &&
        //isset($_GET['x2']) &&
        //isset($_GET['y2']) &&
          isset($_GET['src'])
        )
        { 
          header("Content-type: image/jpeg");
          //Получаем исходное изображение и его ширину, высоту
          $src = imagecreatefromjpeg($_GET['src']);
          list($width, $height) = getimagesize($_GET['src']);
          
          //Создаем результирующее изображение
          $image = imagecreatetruecolor(100,100);
          imagecopyresampled($image, $src,
                             0, 0, 
                             $_GET['x'], $_GET['y'],
                             $_GET['width'], $_GET['height'],
                             $width, $height);
          
          $path = "crop/".time().".jpg";
          imagejpeg($image, $path);
          
          unlink($_GET['src']);
        } else {
          echo "Присланы не все данные";
        }
    } else {
      header('Location: file.php');
    }
Пока что додуматься в чем проблема не могу. Помогите пожалуйста кто чем сможет)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2014, 23:56
Ответы с готовыми решениями:

gd2 и половина изображения
Использую gd2 для создания капчи. imageCreateFromPng сюда передаю бг капчи и скриптом отрисовую...

Как вывести 2 изображения используя gd2?
Я вывожу одно изображение с помощью imagepng($image1). Все работает. Но когда вывожу 2 изображение...

Обрезка изображения
<?php /* $x_o и $y_o - координаты левого верхнего угла выходного изображения на исходном ...

Обрезка изображения
Здравствуйте! Прошу помочь разобраться с функцией обрезки изображения. Нужно чтобы в процессе...

2
420 / 417 / 79
Регистрация: 21.06.2010
Сообщений: 1,362
10.09.2014, 10:34 2
Цитата Сообщение от |VoroN| Посмотреть сообщение
PHP
1
2
$path = "crop/".time().".jpg";
* * * * * imagejpeg($image, $path);
Так вы ж его сохраняете, а надо в броузер отдать если я правильно понял, для этого не нужно указывать $path (NULL)
1
13 / 13 / 11
Регистрация: 24.04.2011
Сообщений: 109
10.09.2014, 12:38  [ТС] 3
Ну, мне и нужно было что бы в файл выводилось, но все равно спасибо, теперь хотя бы понял почему эта ошибка вылезала) С координатами все таки разобрался, оказывается нужно было передавать не ширину и высоту целого изображения, а лишь выделенной области - так на всякий случай говорю, мало ли кто тоже также тупить будет.
Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
imagecopyresampled($image, $src,
                             0, 0, 
                             $_GET['x'], $_GET['y'],
                             100, 100,
                             $_GET['width'], $_GET['height']);
0
10.09.2014, 12:38
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2014, 12:38
Помогаю со студенческими работами здесь

Обрезка изображения до формата 10x15
Добрый день, Возникла необходимость обрезать фото до формата сторон 10x15, притом новое...

Изменение размера и обрезка изображения
Подскажите пожалуйста новичку, как создать вот такой скрипт изменение размера и обрезки изображения...

Обрезка и масштабирование изображения при загрузке на сервер
На сервер загружается изображение и из него делает 3 копии, маленькая 80х80, средняя 250x250 и...

Обрезка изображения на "лету"
Сегодня нашёл в Нете скрипт, который уменьшает изображение и вырезает у него середину. Выглядит он...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
Как создавать приложения для iOS/iPhone
InfoMaster 12.01.2025
Введение в разработку iOS-приложений Разработка приложений для iOS открывает огромные возможности в мире мобильных технологий. С каждым годом количество пользователей iPhone и iPad растет,. . .
Как использовать Kotlin в Android разработке
InfoMaster 12.01.2025
Язык программирования Kotlin, разработанный компанией JetBrains, стал неотъемлемой частью современного мира Android-разработки. Первоначально представленный в 2011 году, Kotlin был официально. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru