PS:本文所述所有內容都需要ImageMagick庫支援。一般主機都支持,但個人自己搭建本地環境預設沒有開啟ImageMagick。 exec函數也不可以停用。
1.摳圖
<?php //纯色底抠图 $input="./1.jpg"; //待抠图文件路径 $ouput="./1.png"; //存放路径 $bgcolor="white"; //背景颜色。可使用十六进制色码和rgb(1,1,1) $fuzz="30000"; //容差 exec("convert $input -fuzz $fuzz -transparent $bgcolor $ouput"); //执行抠图操作。并输入到指定路径
摳圖前(白底):
摳圖後(png透明):
2.羽化邊緣(自動偵測背景)
<?php $A1='1.png'; $A2='2.png'; $A3='3.png'; $A4='4.png'; $A5='5.png'; $img='待扣图.jpg'; $im = new Imagick($img); //8000为边缘容差,修改此数值可适当去除多余相似杂色 $im->transparentPaintImage($im->getImagePixelColor(0, 0), 0, 8000,0);//生成png格式 $im->setImageFormat("png");//保存文件名 $im->writeImage("$A1");//细化边缘 exec("convert $A1 -threshold 75% $A2"); exec("convert $A2 -fill black -opaque white $A3"); exec("convert $A3 -channel RGBA -blur 0x2 $A4"); exec("convert $A1 $A4 -alpha on -compose copy_opacity -composite $A5"); //删除临时图片 unlink($A1); unlink($A2); unlink($A3); unlink($A4);
摳圖前
摳圖後
3.剪下蒙版
<?php $img="1.jpg";//背景 $mask="2.png";//蒙版图。png格式 exec("convert $img $mask -alpha on -compose copy_opacity -composite ouput.png");
背景
遮罩
最後效果
4.混合模式
<?php //-geometry size size 叠加到指定位置坐标 //-compose xxxx 混合模式 $img=‘1.jpg’;//背景图 $img2=‘2.jpg’;//贴图 exec('convert $img $img2 -geometry +480+80 -compose Multiply -composite ouput.jpg');
背景圖
疊圖(白底)
#最終效果
混合模式參數說明:ps:-compose 後面的參數為混合模式
php支援支援以下混合模式參數
Multiply, Screen, Bumpmap, Divide, Plus, Minus,
ModulusAdd, ModulusSubtract, Difference, Exclusion, Lighten,
ModulusAdd, ModulusSubtract, Difference, Exclusion, Lighten, Darken, LightenIntensity, DarkenIntensity,
混合模式中英文對照
1. 正常(Normal)模式
2. 溶解(Dissolve)模式
3. 變暗(Darken)模式
4. 正片疊底(Multiply)模式
5. 顏色加深(Clolor Burn)模式
#6. 線性加深(Linear Burn)模式
7. 變亮(Lighten)模式
8. 濾色(Screen)模式
9. 顏色減淡(Clolor Dodge)模式
10. 線性減淡(Linear Dodge)模式
11. 疊加(Overlay)模式
12. 柔光(Soft Light)模式
13. 強光(Hard Light)模式
14. 亮光(Vivid Light )模式
15. 線性光(Linear Light)模式
16. 點光(Pin Light)模式
17. 差值(Diference)模式
18. 排除(Exclusion)模式
19. 色相(Hue)模式
20. 飽和度(Saturation)模式
21. 顏色(Color)模式
22. 亮度(Luminosity)模式
以上是php摳圖教學(混合模式+剪剪蒙版)的詳細內容。更多資訊請關注PHP中文網其他相關文章!