GDを使って画像の背景を透過させたい
画像の背景を透過させたいと思い下記コードを実行してみたのですが、期待通りの状態になりませんでした。(体の周りに白が残ってしまう)
$src = 'http://ec2.images-amazon.com/images/I/41VI47EYcaL.jpg';
$img = imagecreatefromjpeg($src);
$color = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $color);
imagepng($img);
imagedestroy($img);
そこで、255, 255, 255だけではなく250, 250, 250くらいも透過してみようと思い
$color = imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $color);
$color = imagecolorallocate($img, 250, 250, 250);
imagecolortransparent($img, $color);
と、透過処理を二回続けてみました。すると、最初の状態よりも透過が上手く行われていない結果となってしまいました。
複数色を透過処理することはできないのでしょうか。
imagealphablending, imagesavealphaや、透過するごとに画像を保存して読み込んで…ということをしてみたのですがそれもやはり同じような結果でした。
255~250くらいまで、複数色を透過したとしても綺麗に背景だけ透過されるという結果は得られないかもしれませんが、もしよろしければ複数色の透過を行うコードを教えて頂ければ幸いです。
複数色を透過させる方法、もしくは他の方法でも良いので綺麗に背景だけ透過させる方法がありましたら教えて下さい。
宜しくお願い致します。