Jump to content
Dimitri Yelquin

Иной принцип генерации миниатюр

Recommended Posts

Кто-нибудь знает, возможно ли изменить способ генерации миниатюр в ПШ на подобный вордпрессовскому?

 

Вы знаете, что ПШ сохраняет при этом пропорции загружаемого изображения, тогда как ВордПресс вырезает из него заданный формат. Может из вертикального кадра горизонтальный вырезать. Многое в таком случае в кадр не попадёт, но это и не важно. Потому что у миниатюры иное назначение; она нужна лишь для напоминания о каком товаре речь (как в блоке «Просмотренное») или опознания предмета в плане принадлежности его к тому или другому классу вещей. Видно на миниатюрке, что, вроде как, сапоги и, вроде как, мужские — этого достаточно. Рассмотреть товар во всех подробностях можно на изображении в высоком разрешении. Лучше бы без «вроде как», но я хочу сказать, что даже такого было бы достаточно. Это, конечно, — крайний случай. А в нормальном случае в ВордПрессе мы имеем чёткую миниатюрку, единственным недостатком которой является то, что она неидеально скадрирована. А что, скажите, хуже: нелучшее кадрирование или миниатюрка с полями по краям? Можно, конечно, без полей, но тогда придётся каждую фотку подгонять в Фотошопе под пропорции заданного в магазине формата. Много-много ручной работы!

 

А можно было бы нарезать — неважно, из какого формата — квадратиков (квадратные миниатюрки смотрятся особенно привлекательно), а большое изображение для Фенсибокса оставить, как есть. Разве что ограничить его по высоте высотою среднего экрана, скажем, 800px. Тогда на средних и больших экранах оно и будет показываться в этом размере, а на меньших — пропорционально уменьшится.

 

Таким образом, любая фотография будет показываться в естественном для неё кадрировании, а не в предустановленном магазином. Ну, как можно показать изображение горизонтального формата в вертикальном кадре, выбранном магазином! Выбирая формат, мы исходим из типичного случая, но, ведь, хватает и нетипичных изображений. С ними-то как быть?

 

И даже, если всего фотографии у нас только горизонтальные или только вертикальные, мы их получаем от разных поставщиков, и они не обязаны совпадать по соотношению ширины и высоты. А это значит: или полоски по краям, или лишняя работа.

  • Like 1

Share this post


Link to post
Share on other sites

Кто-нибудь знает, возможно ли изменить способ генерации миниатюр в ПШ на подобный вордпрессовскому?

 

в файле classes/images.inc.php

 

строка:

imagecopyresampled($destImage, $sourceImage, $borderWidth, $borderHeight, 0, 0, $nextWidth, $nextHeight, $sourceWidth, $sourceHeight)

 

$nextWidth, $nextHeight - отвечают за высоту и ширину конечной картинки....

эти данные берутся из того что настроено в админке...

эта одна строчка для всех картинок - и для товаров, и для производителей, и для категорий и т.д.

поэтому менять надо осторожно чтоб все не задеть....

Share this post


Link to post
Share on other sites

Не вижу, как я могу в этом файле изменить принцип генерации.

 

Мне и нужно, чтобы все изображения, кроме того, что открывается в Фенсибоксе (оно должно оставаться оригинальным), нарезались под один формат, под которым подразумевается, только, единое для всех соотношение сторон, при разных масштабах уменьшения.

 

Настройка генерации в админке ПШ. Мы можем оставить «автоматом», тогда вертикальное или горизонтальное изображение подгоняется под квадратный заданный формат более длинной из сторон, а короткая сторона оставляет поля по бокам. Мы можем задать генерацию по ширине, и она впишется, а высота у вертикального ужмётся до ширины, чтобы вписаться в квадрат. Прочие варианты соотношений сторон — аналогично: где-то сжимается, где-то растягивается. Потому что, по условию, изображение должно войти целиком. А я хотел бы иметь генерацию всех миниатюр по фотке формата «large», который получается не вгонкой в него целого оригинала, с последующим уменьшением результата, а вырезанием. Ну представьте себе, на фотографию большего размера наложили рамку меньшего размера, и что в неё вошло, то и вырезали. Именно так генерируются миниатюры в ВордПрессе. И это самый приятный способ, потому что не связан ни с какими лишними затратами времени. При том, что и результут — нормальный.

Share this post


Link to post
Share on other sites

А я хотел бы иметь генерацию всех миниатюр по фотке формата «large», который получается не вгонкой в него целого оригинала, с последующим уменьшением результата, а вырезанием. Ну представьте себе, на фотографию большего размера наложили рамку меньшего размера, что в неё вошло, то и вырезали.

 

тогда вместо указанной выше imagecopyresampled использовать imagecopyresized

Share this post


Link to post
Share on other sites

блин, чушь сморозил.... обе эти функции подходят....

Share this post


Link to post
Share on other sites
$nextWidth, $nextHeight - отвечают за высоту и ширину конечной картинки...

эти данные берутся из того что настроено в админке...

Получается, всё одно? Что сделать изменения в этом файле, что в админке? Но никакими ухищреними в админке невозможно настроить вырезку квадратика 300 х 300 из изображения 300 х 500. В данном примере возможно, только, сжать изображение по вертикали с 500 до 300, ужасно исказив пропорции изображённых предметов.

Share this post


Link to post
Share on other sites

4.jpg

 

такая вырезка нужна?

это делается функциями imagecopyresampled или imagecopyresized

Share this post


Link to post
Share on other sites

Не представляю себе, как это сделать, но думаю, знаю, с чего начать и в каком направлении двигаться.

 

1. Выбираем дефолтный квадратный формат миниатюр.

 

2. Из «ауто», «по ширине», «по высоте» выбираем дефолтный вариант генерации «ауто», но настраиваем подгонку под сторону квадрата не большей, как в ПШ, а меньшей из сторон.

 

3. Настраиваем расположение большей из сторон по центру, относительно квадрата, и выступающие за пределы квадрата края прямоугольника обрезаем. Так мы получаем изображение, которое идёт в краткое описание товара. Все прочие получаются из него уменьшением.

 

4. В Фенси-бокс идёт оригинал изображения. Мы видим в галерее изображений товара квадратные миниатюрки, которые в Фенси-боксе открываются то как квадратные, то как вертикальные, то как вытянутые горизонтальные. Надо только найти способ уменьшения слишком больших изображений до заданного размера, исходя из высоты среднего экрана. Ширина для этого дела менее желательна, потому что варьирует в гораздо более широких пределах.

Share this post


Link to post
Share on other sites

4.jpg

 

такая вырезка нужна?

это делается функциями imagecopyresampled или imagecopyresized

Господи, оно самое! Как Вы это сделали? Можете привести больший кусок кода, где сделаны нужные изменения?

Share this post


Link to post
Share on other sites

Дмитрий, это уже не первая ваше тема по поводу миниатюр, имхо, вы не учитываете как минимум 1 момент - "не большей, как в ПШ, а меньшей из сторон" - есть такое понятие "композиция", а скрипты магазина не обладают интеллектом и они не будут подбирать с какой стороны отрезать.

На приведенном выше снимке на итоговый вариант может попасть любая часть исходной изображения, если с исходниками фото товаров такая каша как описано - где гарантия что сапоги не обрубятся на самом интересном месте

Share this post


Link to post
Share on other sites

Поясню, почему это предпочтительно. В этом варианте по ширине или высоте изображение попадает в миниатюрку полностью. Поровну срезаемые с двух сторон выступающие края чаще всего являются полями фотографии, поэтому мы с ними ничего не теряем. Если же разница сторон очень велика, то тем более короткая сторона прямоуголника должна попасть в квадрат полностью; тем больший фрагмент его ширины/высоты попадает в квадрат, чем больший фрагмент по короткой стороне оказывается в квадрате.

Share this post


Link to post
Share on other sites

@SergeyH

 

Да, не первый. Но в тот раз мне вообще никто не ответил. Потому и попытался поднять этот вопрос снова. Как видите, какой-то результат уже есть.

 

Я уже писал, что миниатюрка, вернее, то, что в неё попало, не имеет большого значения. Это для ориентировки, о чём, примерно, речь. Товар мы смотрим на большой фотографии.

 

А про сапоги... Это не бикини. Нет там никаких «интересных мест»!

Share this post


Link to post
Share on other sites

Ну это зависит от конкретных интересов.

Мне для общего развития просто - как по описанному выше методу сделать превью из вот такого исходника например

Pedro-Garcia4.jpg

 

просто интересно где здесь "неинтересные места" которыми можно пренебречь

Share this post


Link to post
Share on other sites

а че? из сапог превратятся в полу-ботинки :D

Share this post


Link to post
Share on other sites

а че? из сапог превратятся в полу-ботинки :D

Сергей прав. Если кадрировать, как я описываю выше, поровну срезая с двух сторон, то получатся не полусапожки, даже, а поножи. Но, во-первых, этот способ мы можем оставить автоматике для большинства случаев, как в ВордПрессе, оставляя для других случаев, когда автоматика не даёт удовлетворительного результата, ручную кадрировку. Во-вторых, фотографии подобные эти сапогам, с которыми и ручной кадрировкой ничего хорошего у нас не получится, мы должны заранее оптимизировать под формат миниатюр. В данном случае, добавив им ширины. Если же фотографий с такими пропорциями сторон много, то, ясное дело, нужен другой формат миниатюр, не квадрат.

Share this post


Link to post
Share on other sites

... вы не учитываете как минимум 1 момент - "не большей, как в ПШ, а меньшей из сторон" - есть такое понятие "композиция", а скрипты магазина не обладают интеллектом и они не будут подбирать с какой стороны отрезать.

Конечно, движок магазина — не искусственный интеллект, но, ведь, справляется он как-то с задачей вписать в квадрат большую из сторон? А почему нельзя дать ему задание вписывать меньшую, оставляя излишек большей за пределами квадрата?

Share this post


Link to post
Share on other sites

Конечно, движок магазина — не искусственный интеллект, но, ведь, справляется он как-то с задачей вписать в квадрат большую из сторон? А почему нельзя дать ему задание вписывать меньшую, оставляя излишек большей за пределами квадрата?

я же не сказал - нельзя, можно, просто это будет относительно красиво только для четырехугольника с соотношением сторон близким к единице, т.е. очень частный случай. В остальных случаях ситуация будет более или менее близка к сапогам выше.

Share this post


Link to post
Share on other sites

Вот, тут я с Вами не соглашусь!.. Скольких я зарезал сколько я перерезал, этих фоток прямоугольного формата! Вплоть до формата с соотношением сторон 2 х 3 получается очень недурно. Спасает то, что у большинства фоток есть запас по все сторонам. Его-то мы и срезаем с двух сторон. Если разница сторон более полуторного их соотношения, то можно пожертвовать чем-нибудь не самым существенным. Например, на фотографии платья можно не показывать лицо модели. Вернее, показывать его по губы, включительно, сверху и по колени — снизу. Многие магазины только так и показывают. Я же предлагаю показывать целиком, но на большой фотографии, оставляя на миниатюрах только само платье целиком.

Share this post


Link to post
Share on other sites

Вот, пример к тому, о чём я говорил выше:

исходная фотография (здесь сильно уменьшена) с соотношением сторон 300 х 500 и квадратная миниатюрка к ней 300 х 300.

 

300x500.jpg

 

300q.png

Share this post


Link to post
Share on other sites

мы же обсуждаем не ручное редактирование?

размер 385х415, разница сторон порядка 7%

rexford%20black.png

режем слева сверху

 

testimg-cr1.png

 

режем снизу - теряем хлястик, а если там будет не хлястик?

 

П.С.

Модели с обрезанными лицами?

Имхо, чуть более чем ужасно.

 

П.П.С. не вижу никакого практического смысла уродовать фото товара, разве что если это увеличит прибыль.

Share this post


Link to post
Share on other sites

Среди китайских магазинов не припомню такого. Но в Западной Европе и Америке очень много магазинов, где по каким-то соображениям лицо моделей не показывается.

 

И почему «уродовать фото товара»!? Лицо женщины — не товар. А то, что остаётся в кадре, в любом случае лучше манекена.

 

И ещё раз говорю, это всего лишь миниатюра. Даже и больший ущерб изображению, чем срезанный хлястик не критичен. А, вот, белые поля (при цветном фоне на фотографии) по сторонам от прямоугольника, вписанного в квадрат, выглядят очень некрасиво. Это просто непрофессионально. Выглядит, как недоделка. Уж лучше несовершенная кадрировка миниатюры, чем эти поля. Неприятное впечатление от них усиливается в списках, в блоке рекомендованных товаров, где таких изображений оказывается много. Только ради этого и ищу иной способ генерации миниатюр.

Share this post


Link to post
Share on other sites

Наверное, и здесь лучше показать разницу на примере.

 

Вот, так получается в ПрестаШопе, с полями:

 

ps.jpg

 

А так при вырезании из изображения квадратной миниатюрки. Можно вырезать по-разному, и любой из трёх вариантов, приведённых ниже, достаточно хорош:

 

ani1.gif

 

Чего-то не хватает? Да. Но всё целиком мы можем посмотреть на большом изображении:

 

orig.jpg

Share this post


Link to post
Share on other sites

угу, это как раз то о чем я говорю - вам надо решить частную задачу, когда "товар" сосредоточен посередине снимка, с четырех сторон "уши" которыми можно жертвовать, к общим принципам превращения прямоугольника в квадрат это не подойдет)

 

И кстати это все из-за того что фон снимка отличается от фона страницы, последний сапог - в пнг формате, там фон.. как это называется - прозрачный, типа можно на любой заменить, думаю програмно в т.ч. иначе они бы не делали такие фотки.

 

П.С. хотел посетовать на китайцев, но последнее платье не китайское вроде - у них редко модели другой расы) или это они к "копии" дают фотки оригинала?

Share this post


Link to post
Share on other sites

Правильно, «уши». Но и когда их нет, название товара, сопровождаемое достаточно крупным фрагментом изображения, бывает достаточно, чтобы заинтриговать и побудить кликнуть по миниатюрке.

 

В приведённом примере я хотел показать, насколько лучше смотрится квадратик, целиком заполненный изображением, в сравнении с тем, у которого остаются поля по бокам. Вообще-то, они убираются элементарно, достаточно лишь удалить рамку, которая их только подчёркивает. Без неё миниатюрка смотрится гораздо более привлекательно. Но если фон самой страницы не белый, то будет из без рамки видно. Значит цвет фона тоже надо менять на белый. Разумеется, я сам этим способом и пользуюсь, но он меня не вполне устраивает. В таких блоках, как «Рекомендуемые товары на Главной», разнообразный по габаритам товар смотрится более-менее. Но если на всех фотках платья, а формат от одной к другой прыгает, это уже некрасиво. Хотелось бы видеть здесь ровные прямоугольнички или квадратики.

 

Вообще, квадратные миниатюрки к такому товару, как платье, — относительно редкий случай. Я этот формат выбрал, лишь, для иллюстрации идеи, что на миниатюрке можно срезать даже очень много и большого ущерба от этого не будет. Выше я уже писал, что если типичный для нашего товара формат изображения — вертикальный прямоугольник, мы его и выбираем в качестве формата для миниатюры. Но соотношение сторон в фотографиях к товарам от разных поставщиков не может совершенно совпадать. И даже небольшая разница даёт узенькие, но заметные поля. Когда мы подгоняем прямоугольник с приблизительным соотношением сторон 2 х 3 к нашему стандарту с точным соотношением 2 х 3, мы очень мало его обрезаем.

 

Фирма, на самом деле, не китайская. Из Нью-Йорка. Работает на латинский юг страны. Потому и модели, почти, сплошь — мексиканки. А китайцы-то очень любят европейских девушек в качестве моделей. Знаю много магазинов, где китаянки даже не попадаются. Если магазин в Гон-Конге, то модели — англичанки. Их там много осталось после того, как Англия вернула Гон-Конг Китаю. А если фирма в Пекине или Шанхае, то очень часто модели — русские. Это действительно для магазинов, ориентированных на внешний рынок, но не только поэтому, а ещё и потому, что китайцы, в отличие от нас, не считают себя самыми красивыми на Свете. Для них эталон — европейская раса. Потому и лезут из кожи: пластику делают, волосы перекрашивают, зелёные контактные линзы ставят... Результат — «страшнее атомной войны».

Share this post


Link to post
Share on other sites
Вообще-то, они убираются элементарно, достаточно лишь удалить рамку, которая их только подчёркивает.

 

Да у себя так и сделал, даже тему когда то создавал по генерации миниатюр.

Вообще по работе с представлением товара есть пару идей, все руки не доходят и голова до реализации.

 

По китаю: да, более менее европейских моделей могут позволить себе только "дорогие бренды", остальные довольствуются местным) Ага, видел американские магазины, но первоначально решил что все как обычно - берем фотку с хелен марлен и под этим соусом продаем "копию" подешевле, для китая - обычное дело, даже на моделей тратиться не надо)

Share this post


Link to post
Share on other sites

Представление товара, вообще неисчерпаемая тема. Постоянно меня интересует. Я тут рассказывал о паре своих приёмов в работе с изображениями.

 

Один из них — неожиданные развороты страндартного окна Фенси-бокса в панораму. Есть у нас, например, бикини. Клик за кликом нам открываются разные масштабы и ракурсы и вдруг... вся цветовая линейка товара. Фенси-бокс из прямоугольного вертикального растягивается на всю ширину экрана. Фотки к товару ужé в одном масштабе. И если они, к тому же, на белом фоне, то панорамка из них делается очень быстро, а некоторые затраты времени на её изготовление с лихвой окупаются весёлым эффектом. И вовсе не обязательно делать подобное с каждым товаром. Тем более, что с другим можно придумать что-то иное.

 

Изображаемый на фотографии предмет может показываться отдельно и в каком-то интерьере или экстерьере. В последнем случае мы, опять же, вырезаем из большой фотографии фрагмент, содержащий этот предмет, по высоте равный стандартному окну Фенси-бокса, но в максимальную ширину экрана. Для миниатюрки загружаем стандартный прямоугольник, но потом в папке img > p на сервере заменяем изображение для Фенси-бокса на подготовленную панорамку.

 

Когда изображений — одно-единственное, можно сделать галерею из нарезанных фрагментов, которые показываются в той же, примерно, последовательности, в какой наши глаза блуждают по поверхности рассматриваемого предмета. Если «предмет» — изображение женщины, то последовательность, более-менее, известна. Хотя, Вы заблуждаетесь, если думаете, что это — «ознакомление с достопримечательностями». В одном опыте перед испытуемыми выложили кучу фотографий обнажённых женщин. Сканер фиксировал каждое движение их глаз. Оказалось, что 80% отпущенного времени мужчины всматривались в глаза женщин. Когда опыт повторили с женщинами, которым предложили полюбоваться на интересные фотки мужчин, результат был ровно наоборот... А говорят, женщины — более «утончённые и духовные существа» в сравнении с мужчинами!.. Вот, когда я рассказал это в компании, меня там одно «утончённо-духовное существо» таким отборным матом обложило!.. Ладно, это к слову.

 

А сегодня мне пришло в голову сделать ещё одну штуку с Фенси-боксом. Не хватает знания Ява-скрипта. Не знаю, как настроить слайд-шоу. В слайд-шоу мне хотелось бы попробовать сымитировать «наезды», чередование быстрых проходов через короткий интервал со стоп-кадрами (делаются вставкой нескольких одинаковых кадров подряд) и кое-что ещё. Тут не то что руки не доходят, а «глаза боятся». Страшновато в это дело влазить.

Share this post


Link to post
Share on other sites

Автора технологии что-то не видать. Не закончил объяснение-то, что и как нужно сделать! Rage, думаю не один я с нетерпением жду окончания Вашего рассказа о способе вырезания миниатюр.

 

Вот, пример, пожалуй, наиболее удачный. Здесь не то, что в моих примерах, где из прямоугольника вырезается квадрат. Здесь обрезка у большинства кадров очень незначительная. Но посмотрите, даже, и незначительные поля у фотографий значительно портят вид страницы вцелом. Пример взят в топике «Хвастаемся живыми магазинами» — http://goo.gl/o6PYq

Share this post


Link to post
Share on other sites

в файле: 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;
//========================================================================
//========================================================================

 

если вдруг незаработает, значит различия версий престы...будем под вашу подправлять :rolleyes:

  • Like 2

Share this post


Link to post
Share on other sites

Спасибо, Rage!

 

Такой файл я нашёл (выпуск 1.4.6.2) в корневой папке. А есть версии и выпуски, где этот файл находится в папке classes?

Share this post


Link to post
Share on other sites

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. — высота. И всё это для случая, когда ширина больше высоты?

 

И ещё. При вставке кода это тоже нужно —

"//========================================================================"?

Share this post


Link to post
Share on other sites

вставляется код в том виде который дал Rage и туда куда он написал, ничего менять не нужно. Этот код как раз делает то что вы хотели, универсально обрезает поля у изображения до квадрата.

п.с.

файл лежит в корне, строка ориентир под номеров 212

Share this post


Link to post
Share on other sites

$480px = $sourceWidth;

Rage, это, как раз, не главное в моём вопросе. В первую строчку я смело вписываю ширину 480px и... начинаются вопросы:

1. Во второй строке условие "если ширина больше высоты", а у меня наоборот. Что делать?

2. Дальше четыре раза через запятую следуют $sv_razmer, $sv_razmer, $sv_razmer, $sv_razmer. И что в каждый из них вписывать в случае, если у нас, как в моём примере, width=480px и height=800px?

 

Я прошу показать это на конкретном примере с данным соотношением сторон. Если нетрудно.

Share this post


Link to post
Share on other sites

Что-то я засомневался в том, что на место $sv_razmer нужно подставлять конкретное значение. Это повод для твоего бурного веселья — :D :D :D :D :D :D :D :D :D :D :D :D :D :D?

 

$sv_razmer — это название формата, размер которого будет определён в админке?

Share this post


Link to post
Share on other sites

не надо ничего менять... все равно какой размер, сделает квадрат по меньшему краю....

Share this post


Link to post
Share on other sites

Да я уж несколько постов подряд пишу, что не квадрат нужен, а 480 на 800!.. Как прямоугольник-то обрезать? То есть, чтобы из вертикального прямоугольника всё равно, какого соотношения, вырезался вертикальный прямоугольник с заданным соотношением сторон. Вот, в чём задача.

Share this post


Link to post
Share on other sites

Дмитрий, 2 страницы мы обсуждали квадрат и вы просили универсальный код, который бы его создавал... )

Share this post


Link to post
Share on other sites

Кстати, за квадрат отдельное спасибо! Это тоже будет нужно и мне, и многим. Так что я не ошибусь, если скажу, что это «спасибо» от всего форума. Но многим нужен и прямоугольник. И, думаю, больше, чем квадрат.

Share this post


Link to post
Share on other sites

в файле: 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;
//========================================================================
//========================================================================

 

если вдруг незаработает, значит различия версий престы...будем под вашу подправлять :rolleyes:

 

Привет! Пробовал. К сожалению не подходит этот код v1.5.6  :ph34r: ...там файл даже по другому называетя ImageManager.php

Не пробовал такое для 1.5.6 делать? Вещь действительно очень нужная многим. :)

Share this post


Link to post
Share on other sites

Да. История... Сколько мороки было с этими форматами. И сейчас не скажу, что нашёл панацею, но я в своём дизайне настраиваю всё, что касается изображений таким образом, что заказчику ни о каких подгонках под заданный формат, размер вообще задумываться не приходится. Что попало под руку, то и загрузил. Огромное изображение? На большом экране покажется во весь размер. Нет большого? Не беда. И оно покажется без полей. Абсолютно у любой картинки никаких полей и только белая рамка в один пиксель. Секрет?

 

Однажды меня осенило, а не попробовать ли по примеру резиновой настройки размера в некоторых слайдерах для формата thickbox_default не задавать размер? То есть, вместо конкретных значений для ширины и высоты поставить нулики. Работает! Читайте снова абзац выше, кто не вник.

 

Ну, а что делать с прочими форматами? Они-то должны придерживаться какого-то жёсткого значения хотя бы одной из сторон? На странице настройки форматов, где-то в средней её части, можно задать способ генерации миниатюр: автоматически, по ширине и по высоте. Автоматический способ, тот что настроен по умолчанию, как раз и создаёт поля, если изображение не совпадает с заданным форматом. Я экспериментировал и с шириной, и с высотой и для себя сделал вывод, что генерация по ширине тоже может использоваться, но генерация по высоте гораздо более универсальна. То есть миниатюркам форматов small_default, medium_default, home_default и large_default  мы задаём только высоту. Ширину же отпускаем, поставив в её поле нолик. Теперь мы имеем фотографии свободного размера, которые не нужно подгонять, и кучу проблем с вёрсткой. Как я её для себя решил, смотрите ниже. Не забываем кликнуть, чтобы увеличить! В уже открытом колорбоксе работает прокрутка. Достаточно кликнуть по правой половине изображения.

 

Картинки здесь.

Share this post


Link to post
Share on other sites

Всё просто. Открываем 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 by pifon3257899 (see edit history)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More