当我使用带有php imagecopy的imagemagik转换图像时,我面临一个奇怪的问题..这是我的代码
$cmd = "convert ".realpath($temp1)." -alpha set -channel alpha -background none -vignette 0x3 ".$dest_img;
exec($cmd);
这段代码使边缘羽化,所以我可以有一个干净的合并..这是我的合并图像的代码
$image = imagecreatefromjpeg($postcard_img);
$frame = imagecreatefrompng($thumb_img);
list($w, $h) = getimagesize($postcard_img);
imagealphablending($frame,true);
//imagecopymerge($image, $frame, $coords[0], $coords[1], 0, 0, $w, $h, 100);
imagecopy($image, $frame, $coords[0], $coords[1], 0, 0, $w, $h);
这是结果
好了现在奇怪的东西..如果我不使用ImageMagik并简单地通过用imagecopymerge()替换imagecopy()来合并它然后工作但留下粗糙的边缘..这是imagecopymerge()的代码
$postcard_img = $postcard[0]["ms_filepath"].$postcard[0]["ms_filename"];
$thumb_img = $thumb[0]["ms_thumbpath"].$thumb[0]["ms_thumbname"];
$image = imagecreatefromjpeg($postcard_img);
$frame = imagecreatefrompng($thumb_img);
list($w, $h) = getimagesize($postcard_img);
imagealphablending($frame,true);
imagecopymerge($image, $frame, $coords[0], $coords[1], 0, 0, $w, $h, 100);
这是结果(见粗糙边缘)
我所需要的只是羽毛图像..任何想法为什么会发生以及如何克服它?
答案 0 :(得分:1)
没有。抵抗是徒劳的。
convert ( frame.png -channel alpha -blur 0x5 -level 50%,100% ) ( avatar.jpg -geometry +70+120 ) -compose dstover -composite output.png
你总是可以在Photoshop(或类似的)中使用羽化边框制作框架,然后将其放在另一个上面。