Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Здравствуйте!

Коллеги, в php не волоку никак, знаком только с html и css. Занимаюсь вёрсткой собственного маленького инет-магаза на симпле. Столкнулся с проблемой использования костылей из серии необходимости задания максимального размера картинки при показе в css ибо штатная функция ресайза работает не очень удобно, ей необходимо задавать обе стороны изображения и сжатие идет с учетом соотношения сторон.

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

В то же время в другом проекте, который я помогал недавно верстать в Grav CMS есть весьма удобная фишка - cropZoom, которая делает ресайз картинки по большей стороне, но без белых полей. Данный функционал опирается на библиотеку Gregwar Image.

Подскажите пожалуйста кто-нибудь грамотный в php, как можно быстро интегрировать эту библиотеку в simpla, если не затруднит.

В сущности интересует использование только этой функции (cropZoom), остальное не интересует.

Заранее очень благодарен.

Ссылка на сообщение
Поделиться на другие сайты

Очень крутая либа https://github.com/claviska/SimpleImage легко интегрировать в симплу.

Изменено пользователем Noxter
Ссылка на сообщение
Поделиться на другие сайты

Теоретически понял, что надо взять этот кусок:

<?php
try {
  // Create a new SimpleImage object
  $image = new \claviska\SimpleImage();

  // Magic! ✨
  $image
    ->fromFile('image.jpg')                     // load image.jpg
    ->autoOrient()                              // adjust orientation based on exif data
    ->resize(320, 200)                          // resize to 320x200 pixels
    ->flip('x')                                 // flip horizontally
    ->colorize('DarkBlue')                      // tint dark blue
    ->border('black', 10)                       // add a 10 pixel black border
    ->overlay('watermark.png', 'bottom right')  // add a watermark image
    ->toFile('new-image.png', 'image/png')      // convert to PNG and save a copy to new-image.png
    ->toScreen();                               // output to the screen

  // And much more! 
} catch(Exception $err) {
  // Handle errors
  echo $err->getMessage();
}

и вставить в Api\Image.php, туда же в API положить файл библиотеки SimpleImage.php (размерчик у нее конечно ппц, больше 0,5Мб)

Однако ввиду моего полного незнания php, едва я добавляю кусок кода, то картинки на сайте превращаются в выдержку из гитхаба...

Уважаемый Noxter, не могли бы вы сделать мне "рыбу" кода, которую я могу безболезненно встроить в свой image.php, и просто натолкать туда нужных мне параметров из API библиотеки?..

Спасибо заранее!

Ссылка на сообщение
Поделиться на другие сайты

У меня нет готового решения под симплу, в другом проекте использовал эту либу как основную, на вашем месте я бы переписал полностью api/Image.php взяв за основу либу, но работа не малая, у меня около недели ушло чтобы всё довести до идеала.

P.S. Вес большой потому как в либе есть куча фильтров, а-ля инстаграмм :D

Ссылка на сообщение
Поделиться на другие сайты

У меня нет готового решения под симплу, в другом проекте использовал эту либу как основную, на вашем месте я бы переписал полностью api/Image.php взяв за основу либу, но работа не малая, у меня около недели ушло чтобы всё довести до идеала.

 

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

Ссылка на сообщение
Поделиться на другие сайты

 

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

Я же написал довести до идеала ушла неделя.

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

"Не умеешь работать головой - работай руками"

Чет потрахался вчера вечерок и ни черта путного не выходит. Решил сразу готовить все картинки к загрузке в ФШ так, чтобы они были квадратными и одного размера. Геморно, но работает.

Может в следующей версии разработчики включат эту или другую более продвинутую библиотеку в состав CMS.

Всем спасибо за сочувствие.

Ссылка на сообщение
Поделиться на другие сайты

"Решил сразу готовить все картинки к загрузке в ФШ так, чтобы они были квадратными и одного размера. Геморно, но работает."

Всем спасибо за сочувствие.

 

Если так делать: в adobe и corel photo-paint есть пакетная обработка файлов.

можно скрипт сделать (записать свои действия) и фото много сразу обработать таким способом.

если не всё, то многое так можно.

Ссылка на сообщение
Поделиться на другие сайты

штатная функция ресайза работает не очень удобно, ей необходимо задавать обе стороны

 

Ну почему. Можно делать рессайз только по одной стороне:

{$product->image->filename|resize:150:0} - Ширина будет 150, высота любая соответственно в соотношении.

Или-же

{$product->image->filename|resize:0:150} - Аналогично коду выше, но уже по высоте.

 

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

 

А вот в CSS, кстати, свойство max-height: 100% (именно в проценты, я не говорю о px) работает не всегда / не везде.

Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...

Ну почему. Можно делать рессайз только по одной стороне:

Фикус в том, что это именно ресайз. Т.е. если картинка прямоугольная, то у нее при ресайзе до квадрата будут белые поля. А мне нужен ресайз одновременно с кропом.

Вот здесь есть функция zoomCrop - это то, что мне нужно...

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...