PHP ၏ GD စာကြည့်တိုက်ကိုပုံရိပ်ထုတ်ယူရန်အတွက် PHPP ၏ GD စာကြည့်တိုက်ကိုအသုံးပြုသောအခါပွင့်လင်းမြင်သာသောအလွှာများသည်ခေါင်းကိုက်ခြင်းဖြစ်သည်။ အထူးသဖြင့်ကျွန်ုပ်တို့သည်အလွှာမျိုးစုံကိုကျော်လွန်ရန် စိတ်ကူး ယဉ်ပုံသဏ္ဌာန် ကဲ့သို့လုပ်ဆောင်ချက်များကိုအသုံးပြုသောအခါပွင့်လင်းမြင်သာသောအပိုင်းကိုအခြားအလွှာများကအလွယ်တကူ overwritt ်ဌာန်းနိုင်သည်။
ဤဆောင်းပါးသည်အလွှာများအကြားအပြန်အလှန် overlay ကြောင့်ဖြစ်ပေါ်လာသောမတူကွဲပြားသောအကျိုးသက်ရောက်မှုများကိုရှောင်ရှားရန်အရောင်အသွေးစုံခြင်းဖြင့် အရောင်အသွေး ခွဲဝေမှုနှင့်အတူအရောင်များကိုပွင့်လင်းမြင်သာမှုရှိစေရန်ပုံစာများကိုအသုံးပြုသည်။
imagecolorallocatealealpha သည် GD စာကြည့်တိုက်မှ alpha (transparency) သတင်းအချက်အလက်များကိုသတ်မှတ်ရန်သတ်မှတ်ထားသော function တစ်ခုဖြစ်သည်။ ၎င်း၏ function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
int imagecolorallocatealpha ( resource $image , int $red , int $green , int $blue , int $alpha )
အတွက်
$ Image : ImageCreatetRuecolor () မှဖန်တီးထားသောပုံရိပ်အရင်းအမြစ်။
$ အနီရောင် , $ အစိမ်းရောင် , $ အပြာ - Color Color ၏ RGB အစိတ်အပိုင်းများ (0-255) ။
$ alpha : Transparency (0 လုံးဝမဖွင့်နိုင်, 127 လုံးလုံးပွင့်လင်းမြင်သာမှုရှိပါသည်) ။
Transparent အရောင်ကိုနောက်ခံနှင့်အရောင်ဖြည့်ခြင်းအားဖြင့်အလွှာများကိုပေါင်းစည်းသည့်အခါအခြားအလွှာများကလုံးဝ overwrite လုပ်ခြင်းကိုရှောင်ရှားနိုင်သည်။
ငါတို့မှာအလွှာနှစ်ခုရှိတယ်ဆိုပါစို့။
အခြေခံပုံ (နောက်ခံပုံ);
foreground မြေပုံ (တစ်စိတ်တစ်ပိုင်းပွင့်လင်းမြင်သာသော area ရိယာနှင့်အတူ PNG) ။
အကယ်. foreground image ကို overlay လုပ်ရန် စိတ်ကူးယဉ်ပုံကို တိုက်ရိုက်သုံးပါကပွင့်လင်းမြင်သာသော area ရိယာသည်အနက်ရောင်သို့မဟုတ်အခြေခံပုံရိပ်ကိုနောက်တစ်ခေါက်ပေါ်လာလိမ့်မည်မဟုတ်ပါ။
အဓိကအဆင့်များ -
1 ?? alpha blending ကို Enable လုပ်ပါ
ပေါင်းစပ်ခြင်းမပြုမီ, alpha blending ကိုပိတ်ထားပါ။
imagealphablending($image, false);
2 ?? ပွင့်လင်းအရောင်များ assign <br> <br> နောက်ခံနှင့်လုံးဝပွင့်လင်းမြင်သာသောအရောင်သတ်မှတ်ရန် စိတ်ကူးကြည့်EColorallocealealphaကို သုံးပါ။
$transparent = imagecolorallocatealpha($image, 0, 0, 0, 127);
imagefill($image, 0, 0, $transparent);
3 ?? Alpha Channel <br> ပေါင်းစပ်ပြီးနောက် alpha channel ကိုသိမ်းရန်သတိရပါ။
imagesavealpha($image, true);
ပွင့်လင်းမြင်သာသောအလွှာများကိုမည်သို့ရှောင်ရှားရမည်ကိုမည်သို့ရှောင်ရှားရမည်ကိုပြသသည့် PHP SHOP SHOP SHPPL
<?php
// a 400x400 စစ်မှန်တဲ့အရောင်ပတ်တူ
$canvas = imagecreatetruecolor(400, 400);
// ရုပ်သိမ်းခြင်း alpha blending,ပွင့်လင်းနောက်ခံဖြည့်ရန်
imagealphablending($canvas, false);
// လုံးဝပွင့်လင်းအရောင်သတ်မှတ်ပါ
$transparent = imagecolorallocatealpha($canvas, 0, 0, 0, 127);
// ပွင့်လင်းနောက်ခံအဖြစ်ပတ်တူဖြည့်
imagefill($canvas, 0, 0, $transparent);
// foreground တင်နေသည် PNG ရုပ်ပုံ(ပွင့်လင်း area ရိယာနှင့်အတူ)
$foreground = imagecreatefrompng('https://m66.net/images/foreground.png');
// ပတ်တူပေါ်မှာ foreground overlay
imagecopy($canvas, $foreground, 50, 50, 0, 0, imagesx($foreground), imagesy($foreground));
// သိုထား alpha အချက်အလက်အချက်အလက်
imagesavealpha($canvas, true);
// browser မှ output ကို
header('Content-Type: image/png');
imagepng($canvas);
// အရင်းအမြစ်များကိုဖျက်ဆီးသည်
imagedestroy($canvas);
imagedestroy($foreground);
?>
? ဖိုင်အမျိုးအစားသည်ပွင့်လင်းမြင်သာမှုကိုထောက်ပံ့ရမည်
JPEG သည်ပွင့်လင်းမြင်သာမှု, PNG နှင့် GIF အထောက်အပံ့ကိုမထောက်ခံပါ။
? alpha blending ကိုမှန်ကန်စွာကိုင်တွယ်ပါ
ပေါင်းစပ်ခြင်းမပြုမီ, ပေါင်းစပ်ခြင်းနှင့်ပေါင်းစပ်ပြီးနောက် alpha ကိုသိမ်းပါ။
? Transparency တန်ဖိုးများကိုစစ်ဆေးပါ
Transparency Transparency isionecolorallocatealpha ၏ transparency အကွာအဝေးသည် 0 (opacity) သည် 0 (အပြည့်အဝပွင့်လင်းမြင်သာမှု) , ၎င်းသည် CSS နှင့်အတူ 0 ဖြစ်သည် 1.0 255 ကွဲပြားခြားနားသောပြောင်းလဲခြင်းကိုဂရုပြုပါ။