Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вопрос? Загружаемое изображение обрезает картинку по высоте

Тема в разделе "Вопросы- ответы", создана пользователем Burial, 29 авг 2018.

29.08.18 в 20:41
30.08.18 в 12:16
18
921
0
  1. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    Давно интересует такой вопрос.
    Использую поле "Загружаемое изображение". В настройках поля указано "Создать уменьшенную копию" и размеры. При загрузке фото, изображение обрезает по высоте, что очень бывает не красиво, когда обрезает лицо пополам например. Почему cms не уменьшает просто в пикселях, а именно режет при этом еще? Это как то можно исправить?
     
  2. Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.839
    Лучших ответов:
    4
    Рейтинги:
    +257 / 57 / -0
    Burial скрин настроек поля кинь
     
  3. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    Defoz
    Screenshot_3.png
     
  4. Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.839
    Лучших ответов:
    4
    Рейтинги:
    +257 / 57 / -0
    Burial ну оно ведь не обрезает а уменьшает просто изо...
     
  5. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    Уменьшенную копию обрезает, а оригинал нет. Если открыть уменьшенное изображение в браузере, то оно тоже будет обрезанной по высоте. Думал в шаблоне дело, но нет.
     
  6. Defoz

    PRO Users

    Регистрация:
    10 апр 2016
    Сообщения:
    1.839
    Лучших ответов:
    4
    Рейтинги:
    +257 / 57 / -0
    Burial надо бы глянуть... у меня такой проблемы нет..
     
  7. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    414524-2x.jpg
    1535562666_414524-2x.jpg
    В админке тоже урезанная
    Screenshot_4.png
     
  8. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    169
    Лучших ответов:
    1
    Рейтинги:
    +91 / 13 / -0
    А в настройках DLE поковырять в разделе изображения ?

    Screen_00963.jpg
     
  9. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    Здрасьте вам... Америка давно открыта.
     
  10. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    169
    Лучших ответов:
    1
    Рейтинги:
    +91 / 13 / -0
    Всякое бывает ;) Иногда ответ на сложный вопрос лежит на видном месте, а вдруг ?!
     
  11. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    Эти настройки не влияют.
     
  12. Oooops

    Oooops Бывалый

    Регистрация:
    15 ноя 2016
    Сообщения:
    169
    Лучших ответов:
    1
    Рейтинги:
    +91 / 13 / -0
    Всмысле не влияют ? Если логически рассуждать, в настройках есть размеры уменьшенной копии, к примеру стоит 200х100, там же есть раздел "
    Параметры по умолчанию для создания уменьшенных копий загружаемого оригинального изображения
    Укажите по какой из сторон по умолчанию будет проводится создание уменьшенной копии изображения." и если стоит по наибольшей стороне, то имея оригинальное изображение 3000х2000, часть обрежется, так как сохраняя пропорции маленькое изображение должно получиться 200х133.
     
  13. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    В прямом. Я уже все перепробовал в настройках давно. По ширине и высоте.
     
  14. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    Можешь загрузить у себя фотку оригинал из под спойлера? Обрежет как у меня или нет?
     
  15. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.027 / 116 / -0
    Конечно обрежет, так у всех. Не слушай тех кто ничего не знает.
     
  16. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.027 / 116 / -0
    Можно сделать так.
    Открыть /engine/classes/uploads/upload.class.php найти
    PHP:
    if( $thumb->size_auto$this->t_size$this->t_seite ) ) {
    Заменить на
    PHP:
    if( $thumb->size_auto$this->t_size$this->t_seite$this->area ) ) {
    Потом открыть /engine/classes/thumb.class.php найти
    PHP:
    function size_auto($size 100$site 0) {
    Заменить на
    PHP:
    function size_auto($size 100$site 0$area '') {
    Потом перед
    PHP:
    $size explode ("x"$size);
    Вставить
    PHP:
    if ($area == 'xfieldsimage') {
        
    $size explode('x'$size);
        
    $size[0] = intval($size[0]);
        
    $size[1] = intval($size[1]);
      
        
    $new_image imagecreatetruecolor($size[0], $size[1]);
        
    imagecopyresampled($new_image$this->img['src'], 0000$size[0], $size[1], $this->img['lebar'], $this->img['tinggi']);
        
    $this->img['src'] = $new_image;
        return 
    1;
    }
    Результат уменьшенной картинки будет такой
    1535616081_414524-2x.jpg
    Либо вставить это
    PHP:
    if ($area == 'xfieldsimage') {
        
    $size explode('x'$size);
        
    $size[0] = intval($size[0]);
        
    $size[1] = intval($size[1]);
      
        
    $r $this->img['lebar'] / $this->img['tinggi'];
        if ((
    $size[0] / $size[1]) > $r) {
            
    $newwidth $size[1] * $r;
            
    $newheight $size[1];
        } else {
            
    $newheight $size[0] / $r;
            
    $newwidth $size[0];
        }
      
        
    $dst imagecreatetruecolor($newwidth$newheight);
        
    imagecopyresampled($dst$this->img['src'], 0000$newwidth$newheight$this->img['lebar'], $this->img['tinggi']);
        
    $this->img['src'] = $dst;
        return 
    1;
    }
    И результат уменьшенной будет такой
    1535616144_414524-2x.jpg
     
  17. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.027 / 116 / -0
    Первый вариант будет делать картинку по заданному размеру.
    Второй вариант будет делать картинку с отношением сторон, не просто обрезать как сейчас а именно уменьшать.
     
  18. TopicStarter Overlay
    Burial

    Burial Местный

    Регистрация:
    30 сен 2015
    Сообщения:
    1.997
    Лучших ответов:
    2
    Рейтинги:
    +464 / 80 / -0
    PunPun, Спасибо! Первый вариант больше подошёл. Второй вариант чет ухудшает качество и не сжимает в мои размеры, которые указаны в настройках поля. Может в css шаблона дело, но качество изображения заметно теряется.
    P.S. Кинул там на кошелек на пиво )
     
  19. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.027 / 116 / -0
    Потому что второй будет изменять размер пропорционально размеру картинки, он не будет делать ее сплюснотой а подгонит под лучший размер.
    p.s спасибо
     
    • Нравится Нравится x 1
Яндекс.Метрика