Imagick かわいいよ。はぁはぁ。





http://cn2.php.net/imagick





コード上で、画像をいじれるのは面白い。

これは応用甲斐がありますわ。



元の画像は、これね。



これに、Imagickくんを使って、あーだ、こーだ(サムネイル化して、角を丸くして、影をつける)

すると。以下のとおり。




たまらんね。はぁはぁ。こーんなに小さくなって、まぁるくなっちゃってぇ。



おっと、変態モードは置いといて、糞コードでもさらしときますわ。

つっこみ大歓迎ですお。



<?php

$image = new Imagick('image.jpg');

//サムネイル化
$image->thumbnailImage(100, 0);

$height = $image->getImageHeight();
$width = $image->getImageWidth();

//マスク用イメージ作成
$image2 = new Imagick();
$image2->newImage($width,$height,'none','png');

// マスク用レイヤー作成
$dr = new ImagickDraw();

// 塗りつぶし色設定
$dr->setFillColor('white');

// 角丸レイヤー設定
$dr->roundRectangle(0,0, $width-1,$height-1, 10, 10);

//マスク画像描画
$image2->drawImage($dr);

//マスクを使って内側の元イメージを切り取り
$image2->compositeImage($image, Imagick::COMPOSITE_IN, 0, 0, Imagick::CHANNEL_ALL);

// 影を作成
$image3 = new Imagick();
$image3->newImage($width,$height,'none','png');
$image3->setImageBackgroundColor("black");
$image3->compositeImage($image2, Imagick::COMPOSITE_OVER, 0, 0);
$image3->shadowImage(30,3,5,5);

// 影の背景画像を作成
$image4 = new Imagick();
$image4->newImage($image3->getImageWidth(),$image3->getImageHeight(),'white','png');
$image4->compositeImage($image3, Imagick::COMPOSITE_OVER, 0, 0);
// まーじ。
$image4->compositeImage($image2, Imagick::COMPOSITE_OVER, 0, 0);


header('Content-type: image/jpeg');

echo $image4;

$dr->clear();
$dr->destoroy();
$image4->clear();
$image4->destroy();
$image3->clear();
$image3->destroy();
$image2->clear();
$image2->destroy();
$image->clear();
$image->destroy();


?>


参考:画像処理についてあれこれ



いったいお前は何をしたいんだ?ってのは、しばし、お待ちを。もう少しで種あかしします。


コメントをどうぞ