We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15286
    • 79 Posts
    Есть потребность при загрузке картинок на сервер через MCPuck File Browser уменьшать их до требуемого размера автоматом, поскольку выгружаю картинки по 3Mb.
    DR прекрасно генерит превью и большую картинку, но тратит на работу много сил, видимо из-за большого размера...

    Photoshop и ImageEditor встроеный в MODX не предлагать, требуется автоматизация при загрузке smiley
      • 26744
      • 157 Posts
      Quote from: kalina at Oct 07, 2009, 10:09 PM

      Есть потребность при загрузке картинок на сервер через MCPuck File Browser уменьшать их до требуемого размера автоматом, поскольку выгружаю картинки по 3Mb.
      DR прекрасно генерит превью и большую картинку, но тратит на работу много сил, видимо из-за большого размера...

      Photoshop и ImageEditor встроеный в MODX не предлагать, требуется автоматизация при загрузке smiley

      Я использую самописный сниппет + php class "thumbnail_create".
      Код: три строчки. Генерится маленькое изображение, большое изображение (размеры берутся из БД для каждого товара + качество сжатия), накладывается ЛОГО, делаются закругленные углы. Картинки помещаются в нужные директории.
      Сервер быстро всё делает.
        • 15286
        • 79 Posts
        Ну, а реально помочь?
        Дать нужный код из трех строчек?
        Я не программист к сожалению...
          • 26744
          • 157 Posts
          Quote from: kalina at Oct 09, 2009, 06:44 PM

          Ну, а реально помочь?
          Дать нужный код из трех строчек?
          Я не программист к сожалению...

          include(’thumbnail_create.php’);
          $uploaddir = ’путь до фотографии, которую нужно уменьшить/’;
          $file_photo =’путь до уменьшенной фотографии.jpg’;
          $w=’200’; // максимальная ширина уменьшенной картинки, в пикселях
          $h=’100’; // максимальная высота уменьшенной картинки, в пикселях
          $q=’85’; // качество сжатия картинки - 100 - без потерь.


          $variable = new Thumbnail($uploadfile,$w,$h,$file_photo,$q,’’);
          $variable->round_edges(4,’FFFFFF’,’1’); - добавляет закругленные углы радиусом 4 пикселя, цветом FFFFFF
          $variable->merge(’logo.png’,1,1,65,’CCCCCC’); - добавляет ЛОГОТИП с 65% прозрачности, прозрачный цвет ССССС
          $variable->create();


            • 15286
            • 79 Posts
            Спасибо!
            Сорри за непонятливость: что с этим делать, как распорядиться?
              • 26744
              • 157 Posts
              Quote from: kalina at Oct 21, 2009, 05:43 PM

              Спасибо!
              Сорри за непонятливость: что с этим делать, как распорядиться?
              это PHP-код.
              Его нужно вставить в сниппет (или создать новый сниппет).
              После выполнения этого кода создается уменьшенная копия.
              на сервер еще нужно поместить файл thumbnail_create.php (я загружал его в предыдущем посте, только в формате txt)

              Какова логика процесса.
              1. Нужно загрузить фото, которое нужно обработать на сервер.
              Для этого создаем форму добавления фото:

              echo "<form action='upload.php' method='post' enctype='multipart/form-data'>";
              echo "<input type='file' name='uploadfile'>";
              echo "<input type='submit' value='Загрузить'></form>";
              echo "</form>";


              2. Сервер получил фото и сохранил где-то у себя. Теперь нужно обработать фото скриптом.

              $uploaddir = 'путь к временному хранилищу фото';
              $path_file = 'путь куда нужно сохранить обработанное фото';
              
              $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
              if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
               {
                  $name=$_FILES['uploadfile']['name']; // определяем название загруженного фото.
              
                  $name_file = substr($name, 0, -4); // определяем название файла и расширение, т.к. 
                  $ras_file = substr(strrchr($name, "."), 1); // уменьшенное фото будет с таким же именем и с расширением .jpg
              
                  include('thumbnail_create.php');
              
                  $variable = new Thumbnail($uploadfile,300,400,$path_file.'/'.$name_file.'.jpg',85,'');
                  $variable->round_edges(4,'FFFFFF','1');
                  $variable->merge('logo.png',1,1,65,'CCCCCC');
                  $variable->create();


              3. Фото обработали. Выводим результат

              echo "Фото ".$name." успешно загружено на сервер.<br />";
                  echo "Создан: ".$name_file.".jpg";



              А вот куда это прицепить - решать вам.
              Варианты:
              1. отдельная страница для загрузке фото к определенному товару.
              2. TV-параметр к странице
              3. результат вашей фантазии

              P.S. to kalina: если непонятно - пиши в личку или аську.
                • 9670
                • 48 Posts
                3 строчки — это передача данных в класс, который описан в файле thumbnail_create.php. А сам thumbnail_create.php где брать, вы так и не сказали! ай-ай…
                  • 26744
                  • 157 Posts
                  Quote from: Fil at Oct 23, 2009, 08:55 AM

                  3 строчки — это передача данных в класс, который описан в файле thumbnail_create.php. А сам thumbnail_create.php где брать, вы так и не сказали! ай-ай…
                  Здрасьте smiley
                  прикрепленный файл к моему второму посту. Файл в формате txt - нужно переименовать в php.
                  А вообще можно и погуглить wink там и описание подробное будет
                    • 9670
                    • 48 Posts
                    пардон, не заметил wink
                      • 19800
                      • 180 Posts
                      не подскажите как подвесить этот сниппет на событие TV-image, т.е. при клике на кнопке вставить?
                      Вместо чудовищного MCPuck?