私が必要とするようなPHPバージョンが見つかりました。Perl Image :: Magickドロップシャドウ(非コマンドライン)を作成するメソッド
<?php
try
{
/*** a new Imagick object ***/
$im = new Imagick('images/spork.jpg');
/*** set the image format to png ***/
$im->setImageFormat('png');
/*** an object for the drop shadow ***/
$shadow = $im->clone();
/*** an object for the drop shadow ***/
$drop_shadow = $im->clone();
/*** set shadow color to black ***/
$drop_shadow->setImageBackgroundColor(new ImagickPixel('black'));
/*** Create the shadow ***/
$drop_shadow->shadowImage(80, 3, 5, 5);
/*** stick them together ***/
$drop_shadow->compositeImage($im, Imagick::COMPOSITE_OVER, 0, 0);
/*** write image to disk ***/
$drop_shadow->writeImage('/tmp/dropshadow.png');
echo 'Wrote Image';
}
catch(Exception $e)
{
echo $e->getMessasge();
}
?>
(画像を投稿しようとしましたが、私にはできないだろう。)ここ 例:
#!/usr/bin/perl -w
use strict;
my imageurl='http://nonprofit.org/images/someimage.jpg';
my $contact='[email protected]';
system("montage $imageurl -geometry 476x356 -background '#F7F7F7' -quality 90 -fill '#ffffff' -shadow \ -stroke '#000C' -strokewidth 2 -gravity SouthWest -font Candice -pointsize 14 -annotate +2+1 '$contact' \ -stroke none -fill white -gravity SouthWest -font Candice -pointsize 14 -annotate +2+2 '$contact' \ -gravity center $new");
system("montage $new -geometry 480x360 -background '#F7F7F7' -quality 90 -fill '#F7F7F7' $new");
:今
spork with drop shadow
、私は(別の画像付き)はPerlでこれを使用して必要な結果を達成しています
これは、ページbgcolor f7f7f7と一致する480x360のボックス/キャンバスを中心とした素晴らしい影付きのアスペクト比(ed)画像を与えます。
システムメソッドを使用せずにこれを実行したいと思います。
だから、私はこれを試してみました:
動作しません #!/usr/bin/perl -w
use Image::Resize;
use Image::Magick;
use strict;
my imageurl='http://nonprofit.org/images/someimage.jpg';
my $contact='[email protected]';
my $ibig = Image::Magick->new;
$ibig->Read("$imageurl");
$ibig->Resize(geometry=>'476x356');
$ibig->Montage(geometry=>'476x356',
background=>'#F7F7F7',
quality=>90,gravity=>'center',
shadow=>80x4+4+4);
#tried shadow=>'true' and '1' and many other variations.
$ibig->Annotate(text=>$contact,
x=>2,y=>1,
font=>'Candice',
pointsize=>14,
stroke=>'#000C',
strokewidth=>2,
gravity=>'SouthWest');
$ibig->Annotate(text=>$contact,
x=>2,y=>2,
font=>'Candice',
pointsize=>14,
fill=>'#ffffff',
stroke=>'none',
gravity=>'SouthWest');
$ibig->Montage(geometry=>'480x360',
background=>'#F7F7F7',
quality=>90,
fill=>'#F7F7F7');
$ibig->Write("$new");
。注釈は機能しますが、ドロップシャドウはなく、画像は通常479x360までになります。
システムメソッドは完璧に機能しますが、私は本当にImage :: Magickの例でこれを行う方法を学びたいと思います。
私はこれを研究し、読書をして2日間過ごしました。
私はそれを理解できないとき、私はstackoverflowに来て、いつも解決策を得る!
ありがとうございます。
(問題のフォーマットについては申し訳ありません..私はそれをクリーンアップしてみました。)
"私はそれを理解できないとき、私はスタックオーバーフローに来て、いつも解決策を得ます!"なぜ評判は1しかないのですか? – mscha
Dunno。ここに一年来ました。おそらく、私はいつも一日の終わりに私のクッキーを削除するのだろうか?何にせよ、代理人は気にしないでください。それは私の答えを得る能力に影響するのだろうか?私は心配しています.. – DulcimerDude