[PHP-users 33965] Re: imageMagickのsetFillPatternURLに関して。

kameoyaji kenjik @ trialgoods.com
2008年 8月 12日 (火) 13:12:09 JST


田中様

ご指導ありがとうございます。

画像が読めていない可能性に関して下記の様にソースを修正して
実行してみました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<title>sample412</title>
</head>
<body>
<?php
/* Patternを作成 */
$im = new Imagick('pattern1.gif');
var_dump($im);
echo "<br>\n";
$im->writeImage('rewritepattern1.gif');
echo "getImageWidth=".$im->getImageWidth()."<br>\n";
echo "getImageHeight=".$im->getImageHeight()."<br>\n";

$idraw = new ImagickDraw();
$idraw->pushPattern('tile', 0, 0, $im->getImageWidth(), $im->getImageHeight());
$idraw->composite(Imagick::COMPOSITE_DEFAULT, 0, 0, $im->getImageWidth(), $im->getImageHeight(), $im);
$idraw->popPattern();
/* 作成したパターンを使用する */
$idraw->setFillPatternURL('#tile');
/* フォント設定 */
//$idraw->setFont('Tahoma');
$idraw->setFont("/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf");
/* フォントサイズ設定 */
$idraw->setFontSize(60);
/* gravity設定 */
$idraw->setGravity(Imagick::GRAVITY_CENTER);
/* 文字列描画 */
$idraw->annotation(0, 0, "Sample");
/* 背景用のイメージを作成 */
$im2 = new Imagick();
$im2->newImage(240, 80, '#fadf69');
$im2->drawImage($idraw);
$im2->writeImage('sample412a.jpg');
$idraw->clear();
$idraw->destroy();
$im->clear();
$im->destroy();
$im2->clear();
$im2->destroy();

?>

<img src="sample412a.jpg" />

</body>
</html>

結果としては、読めていると思います。

ブラウザ上で表示は

object(Imagick)#1 (0) { } 
getImageWidth=8
getImageHeight=8

となりましたので、Width、Height共に値としては取れています。

又、読込んで出力したファイル"rewritepattern1.gif"に関しては
同じ画像が表示される事を確認いたしました。

結果として、画像は正しく読めていると判断しても良いのかと思います。


-- 
かめおやじと申します、お見知りおきを
個人で運営中のサイト
http://trialgoods.com/emoji 絵文字を使いこなして見るページ
http://katte.mixsn.com       勝手にシリーズ(ことば遊びサイト)
http://mobile.mixed-in.com 携帯向けの絵文字の情報サイト
http://15qm.com              15分間のメルアドサービス
                  (アングラなサイトですが 笑)
kameoyaji <kenjik @ trialgoods.com>



PHP-users メーリングリストの案内