![](/img/trans.png)
[英]Imagemagick - create a thumbnail of the first page of a PDF - PHP
[英]Create Thumbnail of ONLINE PDF for first page only using Imagick
我试图制作托管在另一台服务器上的pdf文件的缩略图。 我当前的代码是:
<?php
$im = new imagick("http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS.pdf");
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
问题在于代码仅为pdf文件的“最后一页”生成缩略图。 如何只为首页制作缩略图? 我试图在imagick行添加[0]。
$im = new imagick("http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS.pdf[0]");
但这没用。 它仅适用于本地pdf文件,即:
$im = new imagick("my-pdf-file.pdf[0]");
请帮我解决这个问题..谢谢..
您需要将活动图像重置为第一页。 这可以通过Imagick :: setIteratorIndex完成 。
<?php
$im = new imagick("http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS.pdf");
$im->setIteratorIndex(0);
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
“这可以通过Imagick :: setIteratorIndex来完成。”
..或不。 根本没有效果。 将其设置为一个会崩溃,将其设置为0会导致最后一页。
function make_thumbnail($filename)
{
try
{
$imagick= new Imagick($filename);
}
catch(ImagickException $e)
{
// failed to make a thimbynail. what now?
// load up our trusty truetype font png instead?
$imagick->destroy();
return "0"; // shove any rubbish in the db - it will just say no image available when asked.
}
$imagick->setIteratorIndex(0);// rewind to first page or image of a multi series
$imagick->setImageFormat("png"); // turn it into a png
$imagick = $imagick->flattenImages(); // remove any transparency
$imagick->scaleImage(300,0); //resize...to less than 300px wide
$d = $imagick->getImageGeometry();
$h = $d['height'];
if($h > 300)
$imagick->scaleImage(0,300);
$imagick->setImageCompression(\Imagick::COMPRESSION_UNDEFINED);
$imagick->setImageCompressionQuality(0);
$imagick->setIteratorIndex(0);
$a = $imagick->getImageBlob(); // output as bytestream
$imagick->destroy();
return $a;
}
尝试...
$im->setImageIndex(0); //this will return 1th page of the pdf file
$im->setImageFormat('jpg');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.