PDFを画像化するかーという時にお世話になったこのサイト
http://ameblo.jp/linking/entry-10997312536.html
PDFが画像1枚ならこのサイトの情報だけで2014年現在も問題ないんですが、
ここにきて初めて複数ページのPDFの画像変換をやることになりまして
このサイトの通りにコーディングしたところ、Exception Errorになりました。
set ImageIndex method is deprecated and its use should be avoided
なんじゃろなーと思いながら上記エラーメッセージで検索するもよくわからない。
そしてようやくマニュアルに返る事を思いつきます。
このメソッドは非推奨です。
このメソッドは非推奨です。
このメソッドは非推奨です。
ほう。じゃあ代わりに紹介されているsetIteratorIndexでも使ってみますか?
$im = new imagick();
$im->setResolution(144,144);
$im->readimage($file_path . '/' . $pdf_name);
$page_count = $im->getImageScene();
for($i = 0; $i <= $page_count-1; $i++) {
$im->setIteratorIndex($i);
$im->setImageFormat('jpeg');
$im->writeimage($file_path.'/'.$image_name . $i . $extension);
}
$im->destroy();
$jpg = array();
for($i = 0; $i <= $page_count - 1; $i++) {
$jpg[] = 'data:image/png;base64,' . base64_encode(file_get_contents($file_path . '/' . $image_name . $i . $extension));
unlink($file_path.'/'.$image_name . $i . $extension);
}
$this->view->jpgs = $jpg;
上々ね。
というわけで気持ちよくなったついでにSmarty側のコードも。
{foreach item=jpg from=$jpgs}
<img src="{$jpg}" alt="file" class="image-view"><br />
{/foreach}
View側は別におもしろくなかった。
それではお疲れ様でした。よい開発ライフを。