PavelUstyugov
@PavelUstyugov
мы целый отряд, выходящих под этой учеткой сюда.

Как лучше резать картинки если на хостинге не установлены всякие либы?

У клиента есть обычный хостинг. Дополнительные модули устанавливать туда нельзя. Ну только внутри папки своего сайта. А задача стоит такая - загружать через форму картинки и потом приводить их к нужному размеру.
А потом еще совмещать эти картинки вместе чтоб они шли по 4 штуки в два ряда (всего их будет 8) и потом еще сохранять эту общую картинку в pdf.

Меня интересует смогу ли я это реализовать если на хостинге не дадут установить никаких доп либ типа imagic ?

Или можно обойтись просто копированием библиотеки в папку сайта и использовать ее? или может есть какие еще здравые пути? Например, взять какой-нибудь готовый модуль нарезки, написанный на другом языке программирования?

Именно проблема в том, что на хостинге не дают ничего инсталлировать.

<?php
  /*
  $x_o и $y_o - координаты левого верхнего угла выходного изображения на исходном
  $w_o и h_o - ширина и высота выходного изображения
  */
  function crop($image, $x_o, $y_o, $w_o, $h_o) {
    if (($x_o < 0) || ($y_o < 0) || ($w_o < 0) || ($h_o < 0)) {
      echo "Некорректные входные параметры";
      return false;
    }
    list($w_i, $h_i, $type) = getimagesize($image); // Получаем размеры и тип изображения (число)
    $types = array("", "gif", "jpeg", "png"); // Массив с типами изображений
    $ext = $types[$type]; // Зная "числовой" тип изображения, узнаём название типа
    if ($ext) {
      $func = 'imagecreatefrom'.$ext; // Получаем название функции, соответствующую типу, для создания изображения
      $img_i = $func($image); // Создаём дескриптор для работы с исходным изображением
    } else {
      echo 'Некорректное изображение'; // Выводим ошибку, если формат изображения недопустимый
      return false;
    }
    if ($x_o + $w_o > $w_i) $w_o = $w_i - $x_o; // Если ширина выходного изображения больше исходного (с учётом x_o), то уменьшаем её
    if ($y_o + $h_o > $h_i) $h_o = $h_i - $y_o; // Если высота выходного изображения больше исходного (с учётом y_o), то уменьшаем её
    $img_o = imagecreatetruecolor($w_o, $h_o); // Создаём дескриптор для выходного изображения
    imagecopy($img_o, $img_i, 0, 0, $x_o, $y_o, $w_o, $h_o); // Переносим часть изображения из исходного в выходное
    $func = 'image'.$ext; // Получаем функция для сохранения результата
    return $func($img_o, $image); // Сохраняем изображение в тот же файл, что и исходное, возвращая результат этой операции
  }
  crop("image.jpg", 100, 100, 200, 50); // Вызываем функцию
?>


Такой код будет работать без специальных либ?
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
теоретически да, практически я библиотек на чистом php не стречал, как вариант использовать сторонее api
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
ЧИТАЙ-ГОРОД Москва
от 140 000 до 210 000 ₽
Modens Group Москва
от 100 000 до 150 000 ₽
РосТендер Москва
от 130 000 до 150 000 ₽
17 февр. 2020, в 17:35
15000 руб./за проект
17 февр. 2020, в 17:25
10000 руб./за проект
17 февр. 2020, в 17:20
30000 руб./за проект