繁体   English   中英

ImageMagick将PDF转换为JPEG

[英]Imagemagick convert pdf to jpeg

使用此代码将pdf转换为jpg时出现错误代码。 我以前没有使用过imagemagick ,所以我不确定自己做错了什么。

我正在使用的代码:

        $im = new Imagick();
        $im->setResolution(300,300);
        $im->readimage('artwork/$file_name'); 
        $im->setImageFormat('jpeg');    
        $im->writeImage('artwork/jpeg/$file_name'); 
        $im->clear(); 
        $im->destroy();

我得到的错误:

致命错误:未捕获的异常'ImagickException'和消息'无法打开图像'@ artwork / $ file_name':/ www / xx / xxxxx / xxxx / xxxx / xx中没有此类文件或目录@ blob.c / OpenBlob / 2480' /upload_artwork2.php:58堆栈跟踪:#0 /www/xx/xxxxx/xxxx/xxxx/xx/upload_artwork2.php(58):Imagick->readimage('@ artwork / $ file _...')#1 { main}放在第58行的/www/xx/xxxxx/xxxx/xxxx/xx/upload_artwork2.php中

这是最好的方法吗,还有其他方法吗?

我更改了我正在使用的代码,并且效果很好。 唯一的问题是,在上载到数据库时需要添加.jpg或.pdf,但否则可以正常工作。

            $file_name = basename($file_name, '.pdf');

            // Convert this document
            // Each page to single image
            $img = new imagick('artwork/'.$file_name.'.pdf');

            // Set background color and flatten
            // Prevents black background on objects with transparency
            $img->setImageBackgroundColor('white');
            $img = $img->flattenImages();

            // Set image resolution
            // Determine num of pages
            $img->setResolution(300,300);
            $num_pages = $img->getNumberImages();

            // Compress Image Quality
            $img->setImageCompressionQuality(100);

            // Convert PDF pages to images
            for($i = 0;$i < $num_pages; $i++) {         

                // Set iterator postion
                $img->setIteratorIndex($i);

                // Set image format
                $img->setImageFormat('jpeg');

                // Write Images to temp 'upload' folder     
                $img->writeImage('artwork/'.$file_name.'-'.$i.'.jpg');

请验证您的路径是否正常-错误明确指出,输入文件artwork/$file_name不存在(至少在指定位置)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM