Фотошоп на PHP и jQuery

Реализовано много методов и функций. Что он может, можете открыть эту картинку и посмотреть Покажу передачу аякс данных и одну из php-функций изменения размера картинки.

$('#my_form').on('submit', function(e)
  {
    App.preventdefault(e); // предотвращение отправки формы по умолчанию. App - созданный обьект в начале скрипта с переменными и функциями

    var $that = $(this);
    if (window.FormData)
    {
      App.formData = new FormData($that.get(0)); // создаем новый экземпляр объекта и передаем ему нашу форму
    } else
    {
      $.error('FormData не поддерживается');
    }
    var errors = $that.find('[name=width]').validate(/^(\d{1,4})?$/, '<2225') // тут идут проверки полей

    if (errors)
    {
      $.error('У вас там что-то не в поряде с введёнными данными, ' + errors + ' раза');
    }

    App.button1.prop("disabled", true); // блокировка кнопки

    App.formData.append('ajax', true);

    $.ajax(
      {
        url: $that.attr('action'),
        type: $that.attr('method'),
        contentType: false, // важно - убираем форматирование данных по умолчанию
        processData: false, // важно - убираем преобразование строк по умолчанию
        dataType: 'json', // ответ придёт в json формате
        data: App.formData, // посылаем php объект с данными из формы

        success: function(response)
        {
          if (response.save == null)
          {
            App.thumbnail.attr("src", 'img/gon.jpg');
          }
          App.button1.prop("disabled", false);
        }
      });
      
      
  });
Самая простая из php-функций, изменение размера картинки:

 /**
   * @param string $orig - путь к обрабатываемой картинке
   * @param string $path - путь сохранения
   * @param int $width - ширина
   * @param int $height - высота
   *
   * @return результат выполнения, true или false
   */
  function resize($orig, $path, $width = 0, $height = 0)
  {
    $result = false;
    try {
      $img = new \Imagick(realpath($orig));
      // если пришла гифка
      if ($img->getImageMimeType() == 'image/gif') {
        foreach($img as $frame) {
          $frame->thumbnailImage($width, $height);
        }
        $result = $img->writeImages($path, true); // Обратите внимание, writeImages вместо writeImage
      }
      else {
        $img->thumbnailImage($width, $height);
        $img->setImageCompression(Imagick::COMPRESSION_JPEG);
        $img->setImageCompressionQuality(70);
        $result = $img->writeImage($path);
      }

      $img->clear();
    }

    catch(ImagickException $e) {
      echo 'У нас проблема ' . $e->getMessage() . " в файле " . $e->getFile() . ", строка " . $e->getLine();
    }

    return $result;
  }

Скачать с гитхаб

11.01.2016

296
  • sash
    Забыл сказать, работает на php 5,6, на 7м уже не хочет. Разберусь, выложу архив «»1676365288
  • Kadёр
    sash, Ждём-с 1676368063
  • sash
    Kadёр, всё работает. Нужно Imagemagick установить, не для всех php он установлен1676706940
A B i U S JS

PHP HTML CSS
Чат
    Для входа только имэйл или имя и апроль
    Можно сменить аватар
    Имэйл Ваше имя
    Пароль