Synology NAS网站映像大小调整

时间:2019-05-31 09:54:42

标签: php image resize nas synology

因此,我目前正在Synology nas网站上使用以下脚本来一次调整图像大小。每次处理上一个请求时,都会在另一个页面上由post函数调用它。

$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);

图像是来自相机的图像,因此它们几乎是您可以获得的最高质量。 这里的问题是我无法在nas上运行imagick。我不知道如何为php安装它。

有什么聪明的方法可以加快我在这里执行的过程吗? 顺便说一句。我也正在运行一些sql脚本,因此我想继续使用php进行此操作。

1 个答案:

答案 0 :(得分:0)

有一个社区存储库,具有imagick。 https://synocommunity.com/ https://synocommunity.com/package/imagemagick

  

第1步以管理员身份登录您的NAS并进入主菜单→   打包中心→设置,然后将信任级别设置为Synology Inc.和   值得信赖的发布者。

     

步骤2在“程序包来源”选项卡中,单击“添加”,键入SynoCommunity作为   命名并http://packages.synocommunity.com/作为“位置”,然后按   单击确定。

     

第3步返回包装中心,享受SynoCommunity的   社区标签中的软件包。

根据您的Synology,可能将Docker用于此任务,而不是将Imagick直接安装到您的Synology上。