Помощник
|
Корректировка изображения... |
Panich
|
Сообщение
#1
|
||
|
|
||
|
|||
r3ntg3n |
6.6.2012, 12:56;
Ответить: r3ntg3n
Сообщение
#2
|
|
Ну, во-первых, определять тип файла по расширению:
[PHP]if(preg_match('/[.](GIF)|(gif)$/', $filename))[/PHP] это йаzz. А если я возьму бинарник и просто поставлю в конце имени .jpg? Используйте getimagesize() + к этому можно можно из результатов получить mime - image_type_to_mime_type() |
|
|
Panich
|
Сообщение
#3
|
|
Спасибо!Сейчас почитаю.
А по решению проблемы...!? |
|
|
r3ntg3n |
6.6.2012, 13:14;
Ответить: r3ntg3n
Сообщение
#4
|
|
[PHP]round ((max($w_src,$h_src)-min($w_src,$h_src))/2)[/PHP] Я вот этого вашего чуда не пойму никак... Вы хотите, чтобы аватар кадрировался до квадратного изображения со стороной в 180 пикселей? Сделайте, как сделано в ВК - пользователь загружает фотку, она не кроппится, а уменьшается до 180 пикселей по меньшей стороне, а после загрузки показывается пользователю на странице с возможностью выбора зоны кроппинга - http://deepliquid.com/content/Jcrop.html Зону кроппинга можно залочить, чтобы была квадратной, и ее можно было только перетаскивать.Создаете в форме скрытые поля, в которые скрипт будет записывать выбранное пользователем положение (достаточно будет верхнего левого угла), а обработчик формы уже будет обрезать фотку по желанию пользователя. Только не забудьте проверять наличие элементов с именами полей в результатах запроса, а то могут попасться кулхацеры, которые захотят подправить код страницы в chrome или firebug. ИМХО, пользаку будет удобно, сможет сам выбрать, какую область он хочет выдеть на аварке. Но если хотите, чтобы все решала система - ща гляну. |
|
|
Panich
|
Сообщение
#5
|
|
Именно!Буду кодом сам выбирать по верхнему краю квадрат,а остальное откидывать.Хочу пока хоть так написать,что бы уже запустить сайт в работу...Уже потом,если пойдёт,буду примочки разные вешать на него.
Вопрос всё ещё остаётся актуальным:почему при уменьшении 180х180 всё работает как нада,а при уменьшении 80х80 обезается по правому верхнему углу...!? Чо-то ничего внятного не могу найти про: [PHP]image_type_to_mime_type()[/PHP] Одна бурда и вопросы на форумах... |
|
|
r3ntg3n |
6.6.2012, 17:08;
Ответить: r3ntg3n
Сообщение
#6
|
|
|
|
|
Panich
|
Сообщение
#7
|
|
Ага!Спасибо...!!!
А в чём ошибка у меня то!? |
|
|
r3ntg3n |
6.6.2012, 23:13;
Ответить: r3ntg3n
Сообщение
#8
|
|
[PHP]if ($w_src > $h_src) { /* 2 x imagecopyresampled */ } else { if ($w_src < $h_src) { /* 2 x imagecopyresampled */ } else { if ($w_src == $h_src) { /* 2 x imagecopyresampled */ } } }[/PHP] Извините, но это говнокод. Во-первых, зачем запихивать по 2 вызова функции каждый раз, если в вызовах меняются только параметры? Почему не высчитать эти самые параметры, а потом запихнуть их в вызовы функции уже после прохождения всей этой вашей ереси? Во-вторых, если у вас не выполнилось первое условие, то зачем делать вложенное второе? Про else if вы, наверное, не знаете? В-третьих, если у вас не выполняется первое условие (ширина изображения больше его высоты), а потом не выполняется второе (ширина меньше высоты), то какое можно сделать предположение? Наверно, что они равные (ширина и высота)?... Тогда зачем у вас третья проверка? Или вы видите еще какой-то вариант? о_О. О ответе на ваш вопрос говорим несколько позже. |
|
|
r3ntg3n |
6.6.2012, 23:25;
Ответить: r3ntg3n
Сообщение
#9
|
|
Дальше, ваши чудесные вызовы функции:
[PHP]imagecopyresampled ($dest, $im, 0, 0, round ((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w, $w, min($w_src,$h_src), min($w_src,$h_src)); imagecopyresampled ($dest_s, $im, 0, 0, round ((max($w_src,$h_src)-min($w_src,$h_src))/2), 0, $w_s, $w_s, min($w_src,$h_src), min($w_src,$h_src));[/PHP] Во-первых, если вы в конструкциях if () {} else {} уже определили, ширина или высота больше, то зачем опять опрелять то же самое через max || min? Во-вторых, посмотрите, за что отвечает каждый из агрументов функции imagecopyresampled(). Если сложно искать - вот здесь. Другое дело, если вы хотите вырезать центральную часть масштабированного изображения, но все равно это делается не так. А если по существу, то в ваших вызовах и идет ошибка: следующие после нулей аргументы - это соотвественно X и Y координаты, с которых начинать копирование и масштабирование исходного изображения. Поставьте 0 и там, и там, тогда копирование/масштабирование будет идти точно от верхнего угла, а не будет смещено. А вот последние 2 аргумента просто тупо замените на ширину и высоту исходного изображения соотвественно, например, как здесь: [PHP]imagecopyresampled ($dest, $im, 0, 0, 0, 0, $w, $w, $w_src, $w_src); imagecopyresampled ($dest_s, $im, 0, 0, 0, 0, $w_s, $w_s, $w_src, $w_src);[/PHP] И да прибудет с вами сила. |
|
|
Panich
|
Сообщение
#10
|
|
|
Хотел бы начать с того,что этот код я с уроков Попова слизал и под себя как смог подстроил.А на самом деле слабо разбираюсь в кодировании при работе с изображениями,да что уж там-вообще не профи в кодировании,так,когда время есть,читаю книги и пробую писать...
зачем делать вложенное Это для перебора всех возможных вариантов...и тут всё предельно просто:если меньше-то делаем это,если больше,то вот это!Знания,которыми я в данный момент обладаю позволили мне сделать только это!:))) И да прибудет с вами сила. Это очень нужно,так как времени из-за основной работы всё это изучать совсем НЕТ,но,естественно, спасибо большое за помощь!!!Буду стараться и больше не выкладывать сюда "говнокод"!:))) Удачи!
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Корректировка Open Real Estate Откорректировать шаблон |
0 | nb001 | 2808 | 24.6.2018, 23:10 автор: nb001 |
|
Изображения с shutterstock от 15 рублей/штука | 5 | Mr_Big | 3670 | 10.9.2017, 21:30 автор: Palundra |
|
Вывод изображения при наведения на часть картинки по area | 1 | androv77 | 4842 | 16.7.2016, 17:32 автор: -YroKPROG- |
|
Создаю фрактальные изображения для разных целей | 22 | Russ33 | 5074 | 27.6.2016, 21:42 автор: Russ33 |
|
Готовые статьи недорого (рерайт + корректировка) Тематики: туризм, путешествия, диеты, здоровье, женская и др. |
1 | Kabardin | 3467 | 4.2.2015, 18:28 автор: Kabardin |
Текстовая версия | Сейчас: 24.4.2024, 6:28 |