美文网首页
centos7.4安装imagick 转载

centos7.4安装imagick 转载

作者: geeooooz | 来源:发表于2022-04-01 14:46 被阅读0次

    转载地址:https://blog.csdn.net/qq_15758827/article/details/104778873

    1、安装ImageMagick

    1) 安装图片支持工具

    yum install libjpeg* libpng* freetype* gd*

    2) 下载源码

    wget http://www.imagemagick.org/download/ImageMagick.tar.gz

    3) 开始编译、安装

    tar -xzvf ImageMagick.tar.gz
    
    cd ImageMagick-7.0.10-0 #版本可能会变动
    
    ./configure --prefix=/usr/local/imagemagick
    
    make && make install
    

    4) 创建连接(非必要,如果需要在运行convert命令处理图片可以添加)

    cd /usr/bin
    ln -s /usr/local/imagemagick/bin/convert convert
    

    5) 检查是否安装成功

    /usr/local/imagemagick/bin/convert -version
    或者 convert -version
    
    image.png

    2、安装php扩展imagick

    1) 下载源码

    wget http://pecl.php.net/get/imagick-3.4.3.tgz #最新版本2017年2月1号发布,3.4.3.......

    2) 解压、编译安装

    每一行都是单独执行的
    
    tar -xzvf imagick-3.4.3.tgz
    cd imagick-3.4.3
    /usr/bin/phpize  #这里也是要执行的
    ./configure --with-php-config=/usr/bin/php-config --with-imagick=/usr/local/imagemagick
    make && make install
    
    image.png

    3) 更改php.ini加入so文件

    vim /etc/php.ini  #打开php.ini文件
     
    extension = imagick.so   #在末尾加入这句
    
    image.png

    如果你的php.ini配置文件在别的位置则 修改相应位置


    image.png

    4) 重启php,检查是否安装成功

    php -m | grep imagick

    image.png

    5) 安装ghostscript

    yum -y install ghostscript

    3、PHP->PDF转图片

    /**
     * 将pdf文件转化为多张png图片
     * @param string $pdf  pdf所在路径 (/www/pdf/abc.pdf pdf所在的绝对路径)
     * @param string $path 新生成图片所在路径 (/www/pngs/)
     *
     * @return array|bool
     */
    function pdf2png($pdf, $path)
    {
        if (!extension_loaded('imagick')) {
            return false;
        }
        if (!file_exists($pdf)) {
            return false;
        }
        $im = new Imagick();
        $im->setResolution(120, 120); //设置分辨率 值越大分辨率越高
        $im->setCompressionQuality(100);
        $im->readImage($pdf);
        foreach ($im as $k => $v) {
            $v->setImageFormat('png');
            $fileName = $path . md5($k . time()) . '.png';
            if ($v->writeImage($fileName) == true) {
                $return[] = $fileName;
            }
        }
        return $return;
    }
     
    /**
     * 将pdf转化为单一png图片
     * @param string $pdf  pdf所在路径 (/www/pdf/abc.pdf pdf所在的绝对路径)
     * @param string $path 新生成图片所在路径 (/www/pngs/)
     *
     * @throws Exception
     */
    function pdf2png2($pdf, $path)
    {
        try {
            $im = new Imagick();
            $im->setCompressionQuality(100);
            $im->setResolution(120, 120);//设置分辨率 值越大分辨率越高
            $im->readImage($pdf);
     
            $canvas = new Imagick();
            $imgNum = $im->getNumberImages();
            //$canvas->setResolution(120, 120);
            foreach ($im as $k => $sub) {
                $sub->setImageFormat('png');
                //$sub->setResolution(120, 120);
                $sub->stripImage();
                $sub->trimImage(0);
                $width  = $sub->getImageWidth() + 10;
                $height = $sub->getImageHeight() + 10;
                if ($k + 1 == $imgNum) {
                    $height += 10;
                } //最后添加10的height
                $canvas->newImage($width, $height, new ImagickPixel('white'));
                $canvas->compositeImage($sub, Imagick::COMPOSITE_DEFAULT, 5, 5);
            }
     
            $canvas->resetIterator();
            $canvas->appendImages(true)->writeImage($path . microtime(true) . '.png');
        } catch (Exception $e) {
            throw $e;
        }
    }
    

    相关文章

      网友评论

          本文标题:centos7.4安装imagick 转载

          本文链接:https://www.haomeiwen.com/subject/zisajrtx.html