[英]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.