Dimitri Yelquin Posted December 15, 2011 Share Posted December 15, 2011 Кто-нибудь знает, возможно ли изменить способ генерации миниатюр в ПШ на подобный вордпрессовскому? Вы знаете, что ПШ сохраняет при этом пропорции загружаемого изображения, тогда как ВордПресс вырезает из него заданный формат. Может из вертикального кадра горизонтальный вырезать. Многое в таком случае в кадр не попадёт, но это и не важно. Потому что у миниатюры иное назначение; она нужна лишь для напоминания о каком товаре речь (как в блоке «Просмотренное») или опознания предмета в плане принадлежности его к тому или другому классу вещей. Видно на миниатюрке, что, вроде как, сапоги и, вроде как, мужские — этого достаточно. Рассмотреть товар во всех подробностях можно на изображении в высоком разрешении. Лучше бы без «вроде как», но я хочу сказать, что даже такого было бы достаточно. Это, конечно, — крайний случай. А в нормальном случае в ВордПрессе мы имеем чёткую миниатюрку, единственным недостатком которой является то, что она неидеально скадрирована. А что, скажите, хуже: нелучшее кадрирование или миниатюрка с полями по краям? Можно, конечно, без полей, но тогда придётся каждую фотку подгонять в Фотошопе под пропорции заданного в магазине формата. Много-много ручной работы! А можно было бы нарезать — неважно, из какого формата — квадратиков (квадратные миниатюрки смотрятся особенно привлекательно), а большое изображение для Фенсибокса оставить, как есть. Разве что ограничить его по высоте высотою среднего экрана, скажем, 800px. Тогда на средних и больших экранах оно и будет показываться в этом размере, а на меньших — пропорционально уменьшится. Таким образом, любая фотография будет показываться в естественном для неё кадрировании, а не в предустановленном магазином. Ну, как можно показать изображение горизонтального формата в вертикальном кадре, выбранном магазином! Выбирая формат, мы исходим из типичного случая, но, ведь, хватает и нетипичных изображений. С ними-то как быть? И даже, если всего фотографии у нас только горизонтальные или только вертикальные, мы их получаем от разных поставщиков, и они не обязаны совпадать по соотношению ширины и высоты. А это значит: или полоски по краям, или лишняя работа. 1 Link to comment Share on other sites More sharing options...
RAGE Posted December 15, 2011 Share Posted December 15, 2011 Кто-нибудь знает, возможно ли изменить способ генерации миниатюр в ПШ на подобный вордпрессовскому? в файле classes/images.inc.php строка: imagecopyresampled($destImage, $sourceImage, $borderWidth, $borderHeight, 0, 0, $nextWidth, $nextHeight, $sourceWidth, $sourceHeight) $nextWidth, $nextHeight - отвечают за высоту и ширину конечной картинки.... эти данные берутся из того что настроено в админке... эта одна строчка для всех картинок - и для товаров, и для производителей, и для категорий и т.д. поэтому менять надо осторожно чтоб все не задеть.... Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 Не вижу, как я могу в этом файле изменить принцип генерации. Мне и нужно, чтобы все изображения, кроме того, что открывается в Фенсибоксе (оно должно оставаться оригинальным), нарезались под один формат, под которым подразумевается, только, единое для всех соотношение сторон, при разных масштабах уменьшения. Настройка генерации в админке ПШ. Мы можем оставить «автоматом», тогда вертикальное или горизонтальное изображение подгоняется под квадратный заданный формат более длинной из сторон, а короткая сторона оставляет поля по бокам. Мы можем задать генерацию по ширине, и она впишется, а высота у вертикального ужмётся до ширины, чтобы вписаться в квадрат. Прочие варианты соотношений сторон — аналогично: где-то сжимается, где-то растягивается. Потому что, по условию, изображение должно войти целиком. А я хотел бы иметь генерацию всех миниатюр по фотке формата «large», который получается не вгонкой в него целого оригинала, с последующим уменьшением результата, а вырезанием. Ну представьте себе, на фотографию большего размера наложили рамку меньшего размера, и что в неё вошло, то и вырезали. Именно так генерируются миниатюры в ВордПрессе. И это самый приятный способ, потому что не связан ни с какими лишними затратами времени. При том, что и результут — нормальный. Link to comment Share on other sites More sharing options...
RAGE Posted December 15, 2011 Share Posted December 15, 2011 А я хотел бы иметь генерацию всех миниатюр по фотке формата «large», который получается не вгонкой в него целого оригинала, с последующим уменьшением результата, а вырезанием. Ну представьте себе, на фотографию большего размера наложили рамку меньшего размера, что в неё вошло, то и вырезали. тогда вместо указанной выше imagecopyresampled использовать imagecopyresized Link to comment Share on other sites More sharing options...
RAGE Posted December 15, 2011 Share Posted December 15, 2011 блин, чушь сморозил.... обе эти функции подходят.... Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 $nextWidth, $nextHeight - отвечают за высоту и ширину конечной картинки...эти данные берутся из того что настроено в админке... Получается, всё одно? Что сделать изменения в этом файле, что в админке? Но никакими ухищреними в админке невозможно настроить вырезку квадратика 300 х 300 из изображения 300 х 500. В данном примере возможно, только, сжать изображение по вертикали с 500 до 300, ужасно исказив пропорции изображённых предметов. Link to comment Share on other sites More sharing options...
RAGE Posted December 15, 2011 Share Posted December 15, 2011 такая вырезка нужна? это делается функциями imagecopyresampled или imagecopyresized Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 Не представляю себе, как это сделать, но думаю, знаю, с чего начать и в каком направлении двигаться. 1. Выбираем дефолтный квадратный формат миниатюр. 2. Из «ауто», «по ширине», «по высоте» выбираем дефолтный вариант генерации «ауто», но настраиваем подгонку под сторону квадрата не большей, как в ПШ, а меньшей из сторон. 3. Настраиваем расположение большей из сторон по центру, относительно квадрата, и выступающие за пределы квадрата края прямоугольника обрезаем. Так мы получаем изображение, которое идёт в краткое описание товара. Все прочие получаются из него уменьшением. 4. В Фенси-бокс идёт оригинал изображения. Мы видим в галерее изображений товара квадратные миниатюрки, которые в Фенси-боксе открываются то как квадратные, то как вертикальные, то как вытянутые горизонтальные. Надо только найти способ уменьшения слишком больших изображений до заданного размера, исходя из высоты среднего экрана. Ширина для этого дела менее желательна, потому что варьирует в гораздо более широких пределах. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 такая вырезка нужна? это делается функциями imagecopyresampled или imagecopyresized Господи, оно самое! Как Вы это сделали? Можете привести больший кусок кода, где сделаны нужные изменения? Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 А можете точно так, как описано во 2-м и 3-м пункте 8-го поста? Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 15, 2011 Share Posted December 15, 2011 Дмитрий, это уже не первая ваше тема по поводу миниатюр, имхо, вы не учитываете как минимум 1 момент - "не большей, как в ПШ, а меньшей из сторон" - есть такое понятие "композиция", а скрипты магазина не обладают интеллектом и они не будут подбирать с какой стороны отрезать. На приведенном выше снимке на итоговый вариант может попасть любая часть исходной изображения, если с исходниками фото товаров такая каша как описано - где гарантия что сапоги не обрубятся на самом интересном месте Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 Поясню, почему это предпочтительно. В этом варианте по ширине или высоте изображение попадает в миниатюрку полностью. Поровну срезаемые с двух сторон выступающие края чаще всего являются полями фотографии, поэтому мы с ними ничего не теряем. Если же разница сторон очень велика, то тем более короткая сторона прямоуголника должна попасть в квадрат полностью; тем больший фрагмент его ширины/высоты попадает в квадрат, чем больший фрагмент по короткой стороне оказывается в квадрате. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 @SergeyH Да, не первый. Но в тот раз мне вообще никто не ответил. Потому и попытался поднять этот вопрос снова. Как видите, какой-то результат уже есть. Я уже писал, что миниатюрка, вернее, то, что в неё попало, не имеет большого значения. Это для ориентировки, о чём, примерно, речь. Товар мы смотрим на большой фотографии. А про сапоги... Это не бикини. Нет там никаких «интересных мест»! Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 15, 2011 Share Posted December 15, 2011 Ну это зависит от конкретных интересов. Мне для общего развития просто - как по описанному выше методу сделать превью из вот такого исходника например просто интересно где здесь "неинтересные места" которыми можно пренебречь Link to comment Share on other sites More sharing options...
RAGE Posted December 15, 2011 Share Posted December 15, 2011 а че? из сапог превратятся в полу-ботинки Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 а че? из сапог превратятся в полу-ботинки Сергей прав. Если кадрировать, как я описываю выше, поровну срезая с двух сторон, то получатся не полусапожки, даже, а поножи. Но, во-первых, этот способ мы можем оставить автоматике для большинства случаев, как в ВордПрессе, оставляя для других случаев, когда автоматика не даёт удовлетворительного результата, ручную кадрировку. Во-вторых, фотографии подобные эти сапогам, с которыми и ручной кадрировкой ничего хорошего у нас не получится, мы должны заранее оптимизировать под формат миниатюр. В данном случае, добавив им ширины. Если же фотографий с такими пропорциями сторон много, то, ясное дело, нужен другой формат миниатюр, не квадрат. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 ... вы не учитываете как минимум 1 момент - "не большей, как в ПШ, а меньшей из сторон" - есть такое понятие "композиция", а скрипты магазина не обладают интеллектом и они не будут подбирать с какой стороны отрезать. Конечно, движок магазина — не искусственный интеллект, но, ведь, справляется он как-то с задачей вписать в квадрат большую из сторон? А почему нельзя дать ему задание вписывать меньшую, оставляя излишек большей за пределами квадрата? Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 15, 2011 Share Posted December 15, 2011 Конечно, движок магазина — не искусственный интеллект, но, ведь, справляется он как-то с задачей вписать в квадрат большую из сторон? А почему нельзя дать ему задание вписывать меньшую, оставляя излишек большей за пределами квадрата? я же не сказал - нельзя, можно, просто это будет относительно красиво только для четырехугольника с соотношением сторон близким к единице, т.е. очень частный случай. В остальных случаях ситуация будет более или менее близка к сапогам выше. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 Вот, тут я с Вами не соглашусь!.. Скольких я зарезал сколько я перерезал, этих фоток прямоугольного формата! Вплоть до формата с соотношением сторон 2 х 3 получается очень недурно. Спасает то, что у большинства фоток есть запас по все сторонам. Его-то мы и срезаем с двух сторон. Если разница сторон более полуторного их соотношения, то можно пожертвовать чем-нибудь не самым существенным. Например, на фотографии платья можно не показывать лицо модели. Вернее, показывать его по губы, включительно, сверху и по колени — снизу. Многие магазины только так и показывают. Я же предлагаю показывать целиком, но на большой фотографии, оставляя на миниатюрах только само платье целиком. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 Вот, пример к тому, о чём я говорил выше: исходная фотография (здесь сильно уменьшена) с соотношением сторон 300 х 500 и квадратная миниатюрка к ней 300 х 300. Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 15, 2011 Share Posted December 15, 2011 мы же обсуждаем не ручное редактирование? размер 385х415, разница сторон порядка 7% режем слева сверху режем снизу - теряем хлястик, а если там будет не хлястик? П.С. Модели с обрезанными лицами? Имхо, чуть более чем ужасно. П.П.С. не вижу никакого практического смысла уродовать фото товара, разве что если это увеличит прибыль. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 15, 2011 Author Share Posted December 15, 2011 Среди китайских магазинов не припомню такого. Но в Западной Европе и Америке очень много магазинов, где по каким-то соображениям лицо моделей не показывается. И почему «уродовать фото товара»!? Лицо женщины — не товар. А то, что остаётся в кадре, в любом случае лучше манекена. И ещё раз говорю, это всего лишь миниатюра. Даже и больший ущерб изображению, чем срезанный хлястик не критичен. А, вот, белые поля (при цветном фоне на фотографии) по сторонам от прямоугольника, вписанного в квадрат, выглядят очень некрасиво. Это просто непрофессионально. Выглядит, как недоделка. Уж лучше несовершенная кадрировка миниатюры, чем эти поля. Неприятное впечатление от них усиливается в списках, в блоке рекомендованных товаров, где таких изображений оказывается много. Только ради этого и ищу иной способ генерации миниатюр. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 16, 2011 Author Share Posted December 16, 2011 Наверное, и здесь лучше показать разницу на примере. Вот, так получается в ПрестаШопе, с полями: А так при вырезании из изображения квадратной миниатюрки. Можно вырезать по-разному, и любой из трёх вариантов, приведённых ниже, достаточно хорош: Чего-то не хватает? Да. Но всё целиком мы можем посмотреть на большом изображении: Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 16, 2011 Share Posted December 16, 2011 угу, это как раз то о чем я говорю - вам надо решить частную задачу, когда "товар" сосредоточен посередине снимка, с четырех сторон "уши" которыми можно жертвовать, к общим принципам превращения прямоугольника в квадрат это не подойдет) И кстати это все из-за того что фон снимка отличается от фона страницы, последний сапог - в пнг формате, там фон.. как это называется - прозрачный, типа можно на любой заменить, думаю програмно в т.ч. иначе они бы не делали такие фотки. П.С. хотел посетовать на китайцев, но последнее платье не китайское вроде - у них редко модели другой расы) или это они к "копии" дают фотки оригинала? Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 16, 2011 Author Share Posted December 16, 2011 Правильно, «уши». Но и когда их нет, название товара, сопровождаемое достаточно крупным фрагментом изображения, бывает достаточно, чтобы заинтриговать и побудить кликнуть по миниатюрке. В приведённом примере я хотел показать, насколько лучше смотрится квадратик, целиком заполненный изображением, в сравнении с тем, у которого остаются поля по бокам. Вообще-то, они убираются элементарно, достаточно лишь удалить рамку, которая их только подчёркивает. Без неё миниатюрка смотрится гораздо более привлекательно. Но если фон самой страницы не белый, то будет из без рамки видно. Значит цвет фона тоже надо менять на белый. Разумеется, я сам этим способом и пользуюсь, но он меня не вполне устраивает. В таких блоках, как «Рекомендуемые товары на Главной», разнообразный по габаритам товар смотрится более-менее. Но если на всех фотках платья, а формат от одной к другой прыгает, это уже некрасиво. Хотелось бы видеть здесь ровные прямоугольнички или квадратики. Вообще, квадратные миниатюрки к такому товару, как платье, — относительно редкий случай. Я этот формат выбрал, лишь, для иллюстрации идеи, что на миниатюрке можно срезать даже очень много и большого ущерба от этого не будет. Выше я уже писал, что если типичный для нашего товара формат изображения — вертикальный прямоугольник, мы его и выбираем в качестве формата для миниатюры. Но соотношение сторон в фотографиях к товарам от разных поставщиков не может совершенно совпадать. И даже небольшая разница даёт узенькие, но заметные поля. Когда мы подгоняем прямоугольник с приблизительным соотношением сторон 2 х 3 к нашему стандарту с точным соотношением 2 х 3, мы очень мало его обрезаем. Фирма, на самом деле, не китайская. Из Нью-Йорка. Работает на латинский юг страны. Потому и модели, почти, сплошь — мексиканки. А китайцы-то очень любят европейских девушек в качестве моделей. Знаю много магазинов, где китаянки даже не попадаются. Если магазин в Гон-Конге, то модели — англичанки. Их там много осталось после того, как Англия вернула Гон-Конг Китаю. А если фирма в Пекине или Шанхае, то очень часто модели — русские. Это действительно для магазинов, ориентированных на внешний рынок, но не только поэтому, а ещё и потому, что китайцы, в отличие от нас, не считают себя самыми красивыми на Свете. Для них эталон — европейская раса. Потому и лезут из кожи: пластику делают, волосы перекрашивают, зелёные контактные линзы ставят... Результат — «страшнее атомной войны». Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 16, 2011 Share Posted December 16, 2011 Вообще-то, они убираются элементарно, достаточно лишь удалить рамку, которая их только подчёркивает. Да у себя так и сделал, даже тему когда то создавал по генерации миниатюр. Вообще по работе с представлением товара есть пару идей, все руки не доходят и голова до реализации. По китаю: да, более менее европейских моделей могут позволить себе только "дорогие бренды", остальные довольствуются местным) Ага, видел американские магазины, но первоначально решил что все как обычно - берем фотку с хелен марлен и под этим соусом продаем "копию" подешевле, для китая - обычное дело, даже на моделей тратиться не надо) Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 16, 2011 Author Share Posted December 16, 2011 Представление товара, вообще неисчерпаемая тема. Постоянно меня интересует. Я тут рассказывал о паре своих приёмов в работе с изображениями. Один из них — неожиданные развороты страндартного окна Фенси-бокса в панораму. Есть у нас, например, бикини. Клик за кликом нам открываются разные масштабы и ракурсы и вдруг... вся цветовая линейка товара. Фенси-бокс из прямоугольного вертикального растягивается на всю ширину экрана. Фотки к товару ужé в одном масштабе. И если они, к тому же, на белом фоне, то панорамка из них делается очень быстро, а некоторые затраты времени на её изготовление с лихвой окупаются весёлым эффектом. И вовсе не обязательно делать подобное с каждым товаром. Тем более, что с другим можно придумать что-то иное. Изображаемый на фотографии предмет может показываться отдельно и в каком-то интерьере или экстерьере. В последнем случае мы, опять же, вырезаем из большой фотографии фрагмент, содержащий этот предмет, по высоте равный стандартному окну Фенси-бокса, но в максимальную ширину экрана. Для миниатюрки загружаем стандартный прямоугольник, но потом в папке img > p на сервере заменяем изображение для Фенси-бокса на подготовленную панорамку. Когда изображений — одно-единственное, можно сделать галерею из нарезанных фрагментов, которые показываются в той же, примерно, последовательности, в какой наши глаза блуждают по поверхности рассматриваемого предмета. Если «предмет» — изображение женщины, то последовательность, более-менее, известна. Хотя, Вы заблуждаетесь, если думаете, что это — «ознакомление с достопримечательностями». В одном опыте перед испытуемыми выложили кучу фотографий обнажённых женщин. Сканер фиксировал каждое движение их глаз. Оказалось, что 80% отпущенного времени мужчины всматривались в глаза женщин. Когда опыт повторили с женщинами, которым предложили полюбоваться на интересные фотки мужчин, результат был ровно наоборот... А говорят, женщины — более «утончённые и духовные существа» в сравнении с мужчинами!.. Вот, когда я рассказал это в компании, меня там одно «утончённо-духовное существо» таким отборным матом обложило!.. Ладно, это к слову. А сегодня мне пришло в голову сделать ещё одну штуку с Фенси-боксом. Не хватает знания Ява-скрипта. Не знаю, как настроить слайд-шоу. В слайд-шоу мне хотелось бы попробовать сымитировать «наезды», чередование быстрых проходов через короткий интервал со стоп-кадрами (делаются вставкой нескольких одинаковых кадров подряд) и кое-что ещё. Тут не то что руки не доходят, а «глаза боятся». Страшновато в это дело влазить. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 20, 2011 Author Share Posted December 20, 2011 Автора технологии что-то не видать. Не закончил объяснение-то, что и как нужно сделать! Rage, думаю не один я с нетерпением жду окончания Вашего рассказа о способе вырезания миниатюр. Вот, пример, пожалуй, наиболее удачный. Здесь не то, что в моих примерах, где из прямоугольника вырезается квадрат. Здесь обрезка у большинства кадров очень незначительная. Но посмотрите, даже, и незначительные поля у фотографий значительно портят вид страницы вцелом. Пример взят в топике «Хвастаемся живыми магазинами» — http://goo.gl/o6PYq Link to comment Share on other sites More sharing options...
RAGE Posted December 24, 2011 Share Posted December 24, 2011 в файле: images.inc.php после строчки: $sourceImage = createSrcImage($type, $sourceFile); вставьте следующий код: //======================================================================== //======================================================================== $sv_razmer = $sourceWidth; if ($sourceWidth>$sourceHeight) $sv_razmer=$sourceHeight; imagecopyresampled( $sourceImage, $sourceImage, 0, 0, ($sourceWidth-$sv_razmer)/2, ($sourceHeight-$sv_razmer)/2, $sv_razmer, $sv_razmer, $sv_razmer, $sv_razmer ); $sourceWidth=$sv_razmer; $sourceHeight=$sv_razmer; //======================================================================== //======================================================================== если вдруг незаработает, значит различия версий престы...будем под вашу подправлять 2 Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 26, 2011 Author Share Posted December 26, 2011 Спасибо, Rage! Такой файл я нашёл (выпуск 1.4.6.2) в корневой папке. А есть версии и выпуски, где этот файл находится в папке classes? Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 26, 2011 Author Share Posted December 26, 2011 1. $sv_razmer = $sourceWidth; 2. if ($sourceWidth>$sourceHeight) $sv_razmer=$sourceHeight; 3. imagecopyresampled( $sourceImage, $sourceImage, 0, 0, ($sourceWidth-$sv_razmer)/2, 4. ($sourceHeight-$sv_razmer)/2, $sv_razmer, $sv_razmer, $sv_razmer, $sv_razmer ); 5. $sourceWidth=$sv_razmer; 6. $sourceHeight=$sv_razmer; Много вопросов. Для удобства я пронумеровал строчки. Итак. Если взять конкретный случай, где ширина изображения thickbox — 480, высота — 800px, то в 1. строке я пишу $480px = $sourceWidth; Во 2. строчке написано "если ширина болше высоты". У меня — наоборот. И что мне с этим делать? Высоту здесь вписывать не надо? В 3. строчке опять указывается ширина, в 4. — высота и за нею подряд 4 раза "свой размер". Размер чего? Или размер какой из сторон? И на что указывакт "/2"? В 5. строчке снова ширина, в 6. — высота. И всё это для случая, когда ширина больше высоты? И ещё. При вставке кода это тоже нужно — "//========================================================================"? Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 27, 2011 Share Posted December 27, 2011 вставляется код в том виде который дал Rage и туда куда он написал, ничего менять не нужно. Этот код как раз делает то что вы хотели, универсально обрезает поля у изображения до квадрата. п.с. файл лежит в корне, строка ориентир под номеров 212 Link to comment Share on other sites More sharing options...
RAGE Posted December 27, 2011 Share Posted December 27, 2011 $480px = $sourceWidth; :D :D :D :D :D :D :D Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 27, 2011 Author Share Posted December 27, 2011 $480px = $sourceWidth; Rage, это, как раз, не главное в моём вопросе. В первую строчку я смело вписываю ширину 480px и... начинаются вопросы: 1. Во второй строке условие "если ширина больше высоты", а у меня наоборот. Что делать? 2. Дальше четыре раза через запятую следуют $sv_razmer, $sv_razmer, $sv_razmer, $sv_razmer. И что в каждый из них вписывать в случае, если у нас, как в моём примере, width=480px и height=800px? Я прошу показать это на конкретном примере с данным соотношением сторон. Если нетрудно. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 27, 2011 Author Share Posted December 27, 2011 Что-то я засомневался в том, что на место $sv_razmer нужно подставлять конкретное значение. Это повод для твоего бурного веселья — :D :D :D :D :D :D :D? $sv_razmer — это название формата, размер которого будет определён в админке? Link to comment Share on other sites More sharing options...
RAGE Posted December 27, 2011 Share Posted December 27, 2011 не надо ничего менять... все равно какой размер, сделает квадрат по меньшему краю.... Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 27, 2011 Author Share Posted December 27, 2011 Да я уж несколько постов подряд пишу, что не квадрат нужен, а 480 на 800!.. Как прямоугольник-то обрезать? То есть, чтобы из вертикального прямоугольника всё равно, какого соотношения, вырезался вертикальный прямоугольник с заданным соотношением сторон. Вот, в чём задача. Link to comment Share on other sites More sharing options...
Ronaldo Perez Posted December 28, 2011 Share Posted December 28, 2011 Дмитрий, 2 страницы мы обсуждали квадрат и вы просили универсальный код, который бы его создавал... ) Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted December 28, 2011 Author Share Posted December 28, 2011 Кстати, за квадрат отдельное спасибо! Это тоже будет нужно и мне, и многим. Так что я не ошибусь, если скажу, что это «спасибо» от всего форума. Но многим нужен и прямоугольник. И, думаю, больше, чем квадрат. Link to comment Share on other sites More sharing options...
Adi Keil Posted October 30, 2013 Share Posted October 30, 2013 в файле: images.inc.php после строчки: $sourceImage = createSrcImage($type, $sourceFile); вставьте следующий код: //======================================================================== //======================================================================== $sv_razmer = $sourceWidth; if ($sourceWidth>$sourceHeight) $sv_razmer=$sourceHeight; imagecopyresampled( $sourceImage, $sourceImage, 0, 0, ($sourceWidth-$sv_razmer)/2, ($sourceHeight-$sv_razmer)/2, $sv_razmer, $sv_razmer, $sv_razmer, $sv_razmer ); $sourceWidth=$sv_razmer; $sourceHeight=$sv_razmer; //======================================================================== //======================================================================== если вдруг незаработает, значит различия версий престы...будем под вашу подправлять Привет! Пробовал. К сожалению не подходит этот код v1.5.6 ...там файл даже по другому называетя ImageManager.php Не пробовал такое для 1.5.6 делать? Вещь действительно очень нужная многим. Link to comment Share on other sites More sharing options...
Dimitri Yelquin Posted October 30, 2013 Author Share Posted October 30, 2013 Да. История... Сколько мороки было с этими форматами. И сейчас не скажу, что нашёл панацею, но я в своём дизайне настраиваю всё, что касается изображений таким образом, что заказчику ни о каких подгонках под заданный формат, размер вообще задумываться не приходится. Что попало под руку, то и загрузил. Огромное изображение? На большом экране покажется во весь размер. Нет большого? Не беда. И оно покажется без полей. Абсолютно у любой картинки никаких полей и только белая рамка в один пиксель. Секрет? Однажды меня осенило, а не попробовать ли по примеру резиновой настройки размера в некоторых слайдерах для формата thickbox_default не задавать размер? То есть, вместо конкретных значений для ширины и высоты поставить нулики. Работает! Читайте снова абзац выше, кто не вник. Ну, а что делать с прочими форматами? Они-то должны придерживаться какого-то жёсткого значения хотя бы одной из сторон? На странице настройки форматов, где-то в средней её части, можно задать способ генерации миниатюр: автоматически, по ширине и по высоте. Автоматический способ, тот что настроен по умолчанию, как раз и создаёт поля, если изображение не совпадает с заданным форматом. Я экспериментировал и с шириной, и с высотой и для себя сделал вывод, что генерация по ширине тоже может использоваться, но генерация по высоте гораздо более универсальна. То есть миниатюркам форматов small_default, medium_default, home_default и large_default мы задаём только высоту. Ширину же отпускаем, поставив в её поле нолик. Теперь мы имеем фотографии свободного размера, которые не нужно подгонять, и кучу проблем с вёрсткой. Как я её для себя решил, смотрите ниже. Не забываем кликнуть, чтобы увеличить! В уже открытом колорбоксе работает прокрутка. Достаточно кликнуть по правой половине изображения. Картинки здесь. Link to comment Share on other sites More sharing options...
pifon3257899 Posted June 8, 2016 Share Posted June 8, 2016 (edited) Всё просто. Открываем classes/ImageManager.php В версии 1.6: Находим if ($ps_image_generation_method == 2 || (!$ps_image_generation_method && $width_diff > $height_diff)) Заменяем на if ($ps_image_generation_method == 2 || (!$ps_image_generation_method && $width_diff < $height_diff)) Аналогично в версии 1.5: Находим if (Configuration::get('PS_IMAGE_GENERATION_METHOD') == 2 || (!Configuration::get('PS_IMAGE_GENERATION_METHOD') && $width_diff > $height_diff)) Заменяем на if (Configuration::get('PS_IMAGE_GENERATION_METHOD') == 2 || (!Configuration::get('PS_IMAGE_GENERATION_METHOD') && $width_diff < $height_diff)) Самому такое не требовалось, но попался заказчик, у которого такой бардак на сайте, что сдохнуть можно. Ну и в голове такой же бардак, разумеется. И вот ему страсть как захотелось, чтобы именно так фотки обрезались))) Edited June 8, 2016 by pifon3257899 (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now