လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Transparent အလွှာကိုအကောင်အထည်ဖော်သည့်အလွှာကို imagecopymerge () နှင့်ပေါင်းစည်းခြင်း

Transparent အလွှာကိုအကောင်အထည်ဖော်သည့်အလွှာကို imagecopymerge () နှင့်ပေါင်းစည်းခြင်း

M66 2025-05-23

PHP ၏ Image Processing Library Library Library GD တွင် imagecopymerge () သည် ပုံတစ်ပုံကိုအခြားပုံရိပ်တစ်ခုသို့ပေါင်းစပ်ပြီးပေါင်းစည်းမှု၏ပွင့်လင်းမြင်သာမှုကိုဖြည့်ဆည်းပေးနိုင်သည့်ဘုံလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ဒါပေမယ့်သင်ဟာပွင့်လင်းမြင်သာ မှုကို ပိုပြီးထိထိရောက်ရောက်ထိန်းချုပ်ချင်တယ်ဆိုရင်,

ဤဆောင်းပါးသည် alpha channels များနှင့်အရောင်များကိုသတ်မှတ်ရန် (Transparency) ကိုရယူရန်နှင့် transparency ကိုရယူရန်နှင့်ပေါင်းစပ်ထားသော agrecopymerge ( ) ပေါင်းစပ်ခြင်းနှင့်ပေါင်းစပ်ထားသော agrecopymerge () ပေါင်းစပ်ရန်ဤဆောင်းပါးသည်ဤဆောင်းပါးကမိတ်ဆက်ပေးလိမ့်မည်။

1 ?? အခြေခံနိဒါန်း

  • imagecolorallocatealealpha (အရင်းအမြစ် $ image)
    သတ်မှတ်ထားသောပုံရိပ်တစ်ခု alpha channel ကိုနှင့်အတူအရောင်တစ်မျိုးကိုသတ်မှတ်လေ့ရှိတယ်။ $ alpha ၏တန်ဖိုးသည် 0 (လုံးဝပွင့်လင်းသည်) မှ 127 (လုံးဝပွင့်လင်းမြင်သာမှု) မှဖြစ်သည်။

  • IND $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_l, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y, int $ src_y; int $ src_y, int $ src_y, int $ src_y; int $ src_y; int $ src_y; int $ src_y; int $ src_y; int $ src_y)
    $ src_im image ကို $ Dst_im သို့ကူးယူပြီး Blending ဒီဂရီကို $ pct (0 = လုံးဝပွင့်လင်းမြင်သာမှု, 100 = လုံးဝ opaque) ဖြင့်ကူးယူပါ။

သတိပြုသင့်သည်မှာ IgeCopymerge () သည် alpha channel mixing ကိုအမှန်တကယ်မထောက်ပံ့နိုင်ကြောင်းသတိပြုသင့်သည်။ pixel အရောင်ကိုညှိခြင်းဖြင့်ပွင့်လင်းမြင်သာသောအကျိုးသက်ရောက်မှုများကိုတုပသည်။ အကယ်. Finer Transucent Merge လိုအပ်ပါက, သင်သည် စိတ်ကူးယဉ်ပုံ ( ) ကိုသုံးနိုင်သည်။

2 ?? နမူနာကုဒ်: layer ပွင့်လင်းအကျိုးသက်ရောက်မှုများနှင့်အတူပေါင်းစည်း

ပွင့်လင်းသောနောက်ခံအလွှာတစ်ခုကိုမည်သို့ဖန်တီးရမည်ကိုပြသသည့်ဥပမာပြည့်စုံသောဥပမာတစ်ခုဖြစ်သည်။

 <?php
// အဓိကပုံရိပ်ကိုဖန်တီးပါ(နောက်ဘက်မေြ)
$background = imagecreatetruecolor(400, 300);
$white = imagecolorallocate($background, 255, 255, 255);
imagefilledrectangle($background, 0, 0, 400, 300, $white);

// ပွင့်လင်းအလွှာများကိုဖန်တီးပါ
$layer = imagecreatetruecolor(200, 150);
imagesavealpha($layer, true);
$transparent = imagecolorallocatealpha($layer, 0, 0, 0, 127); // လုံးဝပွင့်လင်း
imagefill($layer, 0, 0, $transparent);

// layer ပေါ်ရှိစတုဂံဆွဲပါ
$red_alpha = imagecolorallocatealpha($layer, 255, 0, 0, 63); // စိမ်းသော
imagefilledrectangle($layer, 20, 20, 180, 130, $red_alpha);

// အလွှာကိုအဓိကပုံရိပ်ကိုပေါင်းစည်းပါ(မှတ်သား imagecopymerge မပံ့ပိုးပါ alpha အတန်း)
imagecopy($background, $layer, 100, 75, 0, 0, 200, 150);

// ရလဒ်ရလဒ်
header('Content-Type: image/png');
imagepng($background);

// မှတ်ဉာဏ်သန့်ရှင်းရေး
imagedestroy($background);
imagedestroy($layer);
?>

3 ?? code parsing

  • ImagecreatetRuecolor () ကို စစ်မှန်သောအရောင်ဖန်တီးရန်အသုံးပြုသည်။

  • imagesavealpha () သည် ပွင့်လင်းမြင်သာသောသတင်းအချက်အလက်များမပျောက်စေရန် alpha channel ကိုသိမ်းဆည်းရန်အလံကိုဖွင့်သည်။

  • imagecolorallocatealpha () သည် ပွင့်လင်းမြင်သာမှုနှင့်အရောင်အဖြစ်သတ်မှတ်သည်။ ၎င်းသည်ပွင့်လင်းမြင်သာသောနောက်ခံနှင့်အနီရောင်အနီရောင်ကိုဖန်တီးရန်အသုံးပြုသည်။

  • Imagecopy () imagecopymerge အစား () alpha channel ကိုထိန်းသိမ်းရန်အသုံးပြုသည်။ အကယ် . သင်သည် isagecopymerge () ကို အသုံးပြုပါက,

  • နောက်ဆုံးအနေနဲ့ Generated Image output ကို output လုပ်ဖို့ imagepng () ကို သုံးပါ။