0

tiff ファイルを読み込んで画像の数を数え、各画像を PNG サムネイルとして表示しようとしています。

カウント部分は問題ありません。その tif の正しいページ数である 6 をカウントすると、コードは tiff の最初のページである同じ画像を 6 つリストします。ループに問題がある場合、または imagick 関数を正しく使用していない場合は、ワークアウトできません。

誰でも助けてくれますか

<?php

$image2 = new Imagick('http://mysite.org.uk/tiftest/2.tif'); 


/* Create the object */
$image = new Imagick('http://mysite.org.uk/tiftest/2.tif');
$count = $image->getNumberImages();

echo "<h3 style=\"font: bold 12pt Arial\">Total Number of Images Extracted ".
 "from the TIF : ".$image->getNumberImages()."</h3>";

for ($x = 1;$x <= $image->getNumberImages();$x++) {
    $image->pingImage( $image2 );    
    $image->readImageFile( $image2 );    
    $image->setImageFormat( 'png' );
    $image->thumbnailImage(100, 0);
echo "<img id='" . $x . "' src='data:image/png;base64,".base64_encode($image)."' />"; } ?>
4

2 に答える 2

0

私はそれを考えました!!

tif からすべての個別のページを取得し、それらを PNG として表示するコードは次のとおりです。

<?php
/* Create the object */
$image = new Imagick('http://mysite.o.uk/tiftest/1.tif');
$count = $image->getNumberImages();

echo "<h3 style=\"font: bold 12pt Arial\">Total Number of Images Extracted ".
  "from the TIF : ".$image->getNumberImages()."</h3>";
 $x =0;

foreach ( $image as $image ) {  
    $x++;
    $image->setImageFormat( 'png' );
    $image->thumbnailImage(150, 120);

    echo "<img id='" . $x . "' src='data:image/png;base64,".base64_encode($image)."' />";


 }
?>

ただし、base63エンコーディングを使用せずに真のPNGとして表示する方法を知る必要があります。アイデアはありますか???

于 2013-05-15T16:16:10.807 に答える