仅使用Imagick为第一页创建ONLINE PDF缩略图

我试图制作托管在另一台服务器上的pdf文件的缩略图。 我目前的代码是:</ p>

 &lt;?php 
$ im = new imagick(“http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS.pdf”);

$ im-&gt; setImageFormat('jpg');
header('Content-Type:image / jpeg');
echo $ im;
?&gt;
</ code> </ pre>

问题是代码只为pdf文件的最后一页生成缩略图。 如何仅为第一页制作缩略图? 我试图在想象线上添加[0]。</ p>

  $ im = new imagick(“http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS.pdf[0  ]“); 
</ code> </ pre>

但它不起作用。 它仅适用于本地pdf文件,即:</ p>

  $ im = new imagick(“my-pdf-file.pdf [0]”); 
</ code> </ pre>

请帮我解决这个问题..谢谢.. </ p>
</ div>

展开原文

原文

I tried to make a thumbnail of a pdf file which is hosted on another server. My current code is:

<?php
$im = new imagick("http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS.pdf");
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>

The problem is that code is only generating thumbnail for LAST PAGE of the pdf file. How can I make a thumbnail for first page only? I tried to add [0] at the imagick line.

$im = new imagick("http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS.pdf[0]");

but it didn't work. It only work for local pdf file, i.e:

$im = new imagick("my-pdf-file.pdf[0]");

Please help me solve this problem.. Thanks..

3个回答



您需要将活动图像重置为第一页。 这可以通过 Imagick :: setIteratorIndex 来完成。 </ p>

 &lt;?php 
$ im = new imagick(“http://www.d3publisher.us/Walkthroughs/Naruto_NC_3_DS .pdf“);
$ im-&gt; setIteratorIndex(0);
$ im-&gt; setImageFormat('jpg');
header('Content-Type:image / jpeg');
echo $ im;

?&gt;
</ code> </ pre>
</ div>

展开原文

原文

You'll need to reset the active image to the first page. This can be done with 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 ...来完成。”</ p>

..或 不。 根本没有效果。 将它设置为一个崩溃的东西,将其设置为0得到最后一页.. </ p>

  function make_thumbnail($ filename)
{

尝试

\ $ imagick = new Imagick($ filename);
}
catch(ImagickException $ e)
{
//未能成为一个thimbynail。 现在怎么办?
//加载我们可信赖的truetype字体png?
$ imagick-&gt; destroy();
返回“0”; //在数据库中推送任何垃圾 - 只会在被问到时说没有可用的图像。
}
$ imagick-&gt; setIteratorIndex(0); //快退到第一页或多系列图像
$ imagick - &GT; setImageFormat( “PNG”); //把它变成png
$ imagick = $ imagick-&gt; flattenImages(); //删除任何透明度

$ imagick-&gt; scaleImage(300,0); //resize...to小于300px宽
$ d = $ imagick-&gt; getImageGeometry();
$ h = $ d ['height'];
if($ h> 300)
$ imagick-&GT; scaleImage(0300);

$ imagick-&gt; setImageCompression(\ Imagick :: COMPRESSION_UNDEFINED);
$ imagick-&gt; setImageCompressionQuality(0);
$ imagick-&gt; setIteratorIndex(0);
$ a = $ imagick-&gt; getImageBlob(); //输出为bytestream
$ imagick-&gt; destroy();
返回$ a;
}
</ code> </ pre>
</ div>

展开原文

原文

"This can be done with Imagick::setIteratorIndex. .."

..or not. Simply has no effect . Setting it to one crashes something, setting it to 0 gets the last page..

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;
    }



尝试... </ p>

  $ im-&gt; setImageIndex(0);  //这将返回pdf文件的第1页
$ im-&gt; setImageFormat('jpg');
</ code> </ pre>
</ div>

展开原文

原文

Try...

$im->setImageIndex(0); //this will return 1th page of the pdf file
$im->setImageFormat('jpg');

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐