Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Скрипт создания изображения.
Это для создания изображения из существующего изображения. Всё умножается на 4, потому что манипуляции проводятся с картинкой 640*400. А берётся картинка 2560*1600.
x1-отступ по абсцисс, н1-отступ по ординат. W и H соответственно ширина и высота веделенной области.
И потом файл cropped.jpg выводится пользователю, потому что сам скрипт ничего не показывает:
<img src="cropped.jpg" >.
[b]
Теперь подскажите:
1) Будет ли вообще этот скрипт работать? Потому что cropped.jpg должна изменяться непосредственно на самом сервере. Т.е. этот файлик будет находиться в папочке со всеми скриптами.
2) Как это скажется на скорости работы сайта, к примеру если сразу 20 человек обратятся к этому скрипту, не получат ли они неправильную картинку?
3) Может можно что-нибудь сделать с этим скриптом, чтобы картинка просто выводилась пользователю, и нигде на сервере не сохранялась.
4) Минимальные размеры картинки, которые получаются 1600*1200, а максимальные 2134*1600. А нужно, чтобы во всех ситуациях получалось 1600*1200.
Стоит ли второй раз обрабатывать cropped.jpg, чтобы получить уменьшенное до нужных размеров изображение, или можно сделать этот как нибудь-попроще?
P.S. Буду ооочень признателен, если хоть кто-нибудь ответит на все эти вопросы. Нужна помощь. Если что-то непонятно, спросите я объясню по другому. =)
Мелкий
Отправлено: 16 Июля, 2010 - 22:14:48
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
1) криминала не вижу, должен по идее работать. Вот только srcx и srcy у imagecopyresampled (5 и 6-ые параметры) я так понимаю должны быть как раз нулевые, хотя зависит от цели скрипта, поэкспериментируйте.
2) все получат правильную картинку, но вот на скорости отразится отрицательно, тем более для такой крупной картинки.
3) у imagejpeg удалите второй параметр и высылайте соответствующий заголовок, но запрашивать картинку надо через html-тег, но у скрипта уже, и, по-видимому, гетом. Пост туда не передастся
4) пара условий, который будут проверять, какие нужны размеры. Или я не понял пункта.
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
Спасибо. Но ещё возникли вопросы.
1) Так и задумано. Это Jcrop, там часть изображения по X или Y отрезается. С этим ясно.
2) Вот я и думаю, насколько отрицательно? Если +1 секунда при 10 одновременных подключениях, это ещё не очень страшно. Если больше, плохо. С этим потом разберусь, при покупке хостинга.
3) Я сделал вот так:
.
Нажимаю и у меня просто выводится кратинка, которую нельзя сохранить. То есть на странице http://localhost/3/saveCrop2.php она видима, но сохранить можно только скрипт. А при попытке открыть в новом окне вылазит куча Ошибок:
Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in Z:\home\localhost\www\3\saveCrop2.php on line 13
Warning: imagecreatefromjpeg(./files//) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in Z:\home\localhost\www\3\saveCrop2.php on line 14
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in Z:\home\localhost\www\3\saveCrop2.php on line 15
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\3\saveCrop2.php:13) in Z:\home\localhost\www\3\saveCrop2.php on line 16
Warning: imagejpeg(): supplied argument is not a valid Image resource in Z:\home\localhost\www\3\saveCrop2.php on line 17
Warning: imagecreatefromjpeg(./files//) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in Z:\home\localhost\www\3\saveCrop2.php on line 18
4) Вот тут самая загвоздка. Мне в итоге нужно вывести пользователю изображение размером 1600*1200. В скрипте, который я привёл, могут получиться размеры от 1600*1200 до 2134 на 1600, в зависимости от того какую область изображения выделит пользователь. И выводится соответственно картинка большая чем нужно. И эту, получившуюся в результате скрипта, картинку нужно уменьшить до размеров 1600*1200 ничего не отрезая.
Вот, как то так.
qbik
Отправлено: 16 Июля, 2010 - 22:40:39
Гость
Покинул форум
Сообщений всего: 114
Дата рег-ции: Июнь 2010
Помог: 0 раз(а)
2. для проверки быстродействия в консоли ввести
$ ab -n 1000 -c 20 [http[s]://]hostname[:port]/path/твой_скрипт?параметры=параметры
-с количество одновременных запросов
-n общее число запросов
погоняй у себя, заочно не скажешь
Dezmont
Отправлено: 16 Июля, 2010 - 22:47:41
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Помог: 1 раз(а)
qbik пишет:
2. для проверки быстродействия в консоли ввести
$ ab -n 1000 -c 20 [http[s]://]hostname[:port]/path/твой_скрипт?параметры=параметры
-с количество одновременных запросов
-n общее число запросов
погоняй у себя, заочно не скажешь
А можно поподробнее? Куда это вставлять и где смотреть? Вместо hostname, port тоже что-то нужно указывать? В какой именно консоли?
Мелкий
Отправлено: 16 Июля, 2010 - 22:56:03
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Dezmont пишет:
2) Вот я и думаю, насколько отрицательно? Если +1 секунда при 10 одновременных подключениях, это ещё не очень страшно. Если больше, плохо. С этим потом разберусь, при покупке хостинга.
от CPU зависит.
Dezmont пишет:
Нажимаю и у меня просто выводится кратинка, которую нельзя сохранить.
Dezmont пишет:
и нигде на сервере не сохранялась.
?
вместо POST, передавайте этому скрипту GET-параметры, типа так: <img src="image.php?x1=100&y1=50&w=далее_по_тексту">
Dezmont пишет:
картинку нужно уменьшить до размеров 1600*1200 ничего не отрезая.
ну тогда немного геометрия может поплыть. И лучше сразу инициализировать 1600х1200 картинку, а потом копировать в ней не х*4, а вычислять размер посложнее, чтобы вписаться в заданные габариты.
Dezmont пишет:
А можно поподробнее? Куда это вставлять и где смотреть? Вместо hostname, port тоже что-то нужно указывать? В какой именно консоли?
ssh или физическая консоль никсовой машины. $ - их командное приветствие.
----- PostgreSQL DBA
Dezmont
Отправлено: 16 Июля, 2010 - 23:28:25
Частый гость
Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.