Изменение размера изображения веб-станции NAS Synology - PullRequest
2 голосов
/ 31 мая 2019

Так что в настоящее время я использую следующий скрипт на моей веб-станции Synology nas для изменения размера изображений по одному.Он вызывается функцией поста на другой странице каждый раз, когда обрабатывается предыдущий запрос.

$originalFile = 'img1.jpg';
$smallFile = 'img1_small.jpg';
$percentage = 0.2;
$mktime = date('Y-m-d H:i:s', filemtime($originalFile));
$img = imagecreatefromjpeg($originalFile);
list($width, $height) = getimagesize($originalFile);

    if(function_exists("exif_read_data")){

        $exif = @exif_read_data($originalFile);

            if(!empty($exif['Orientation'])) {

                switch($exif['Orientation']) {
                    case 8:
                            $img = imagerotate($img,90,0);
                                list($height, $width) = getimagesize($originalFile);
                                break;
                    case 3:
                        $img = imagerotate($img,180,0);
                        break;
                    case 6:
                        $img = imagerotate($img,-90,0);
                        list($height, $width) = getimagesize($originalFile);
                        break;
                }
            }
    }
    $newWidth = ceil($percentage * $width);
    $newHeight = ceil($percentage * $height);

    $resized = imagecreatetruecolor($newWidth, $newHeight);
    imagecopyresampled($resized, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
    imagejpeg($resized, $smallFile, 100);
    imagedestroy($resized);

Изображения - это изображения, поступающие с камеры, поэтому они почти того качества, которое вы можете получить.Проблема в том, что я не могу запустить Imagick на моем NAS.Я не знаю, как установить это для PHP.

Есть ли какой-нибудь умный способ ускорить процесс, который я здесь делаю?КСТАТИ.Я также запускаю некоторые сценарии sql, поэтому я хотел бы продолжать делать это с помощью php.

1 Ответ

0 голосов
/ 07 июня 2019

Существует хранилище сообщества, в котором есть imagick.https://synocommunity.com/ https://synocommunity.com/package/imagemagick

Шаг 1 Войдите в систему NAS как администратор и выберите Главное меню → Центр пакетов → Настройки и установите Уровень доверия для Synology Inc. и доверенных издателей.

Шаг 2 На вкладке «Источники пакетов» нажмите «Добавить», введите SynoCommunity в качестве имени и http://packages.synocommunity.com/ в качестве местоположения, а затем нажмите ОК для подтверждения.

Шаг 3 Вернитесь в Центр пакетов инаслаждайтесь пакетами SynoCommunity на вкладке "Сообщество".

В зависимости от вашей Synology может быть целесообразно использовать Docker для этой задачи вместо прямой установки Imagick на вашу синологию.

...