Custom Tone ကိုမည်သို့အကောင်အထည်ဖော်နိုင်ပြီး imagecolorresolve () function ကို အသုံးပြု. ပုံရိပ်အရောင်ထုတ်လုပ်မှုကိုအကောင်းဆုံးလုပ်နည်း
PHP တွင်ရုပ်ပုံများကိုပြုပြင်သည့်အခါရုပ်ပုံ၏အရောင်, တောက်ပမှုသို့မဟုတ်ခြားနားချက်ကိုညှိရန်လိုအပ်သည်။ algorithm ကိုမြေပုံရေးဆွဲခြင်းသည် algorithm ကိုမြေပုံဆွဲခြင်းဖြင့်ပိုမိုတိကျစွာထိန်းချုပ်နိုင်သည်။ ဤဆောင်းပါးသည် isagecolorresolveolveololve () function ကို အသုံးပြု. စိတ်ကြိုက်အသံအနှောက်အယှက်ဖြစ်စေသည့် algorithm ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။ ပုံရိပ်အရောင်ပြုပြင်ခြင်းဥပမာများကိုဖော်ပြပါ။
Imagecolorresolve () PHP ၏ GD စာကြည့်တိုက်တွင်ဖော်ပြထားသောပုံရိပ်အရင်းအမြစ်တစ်ခုမှ parses နှင့် color index ကိုသတ်မှတ်ထားသော RGB တန်ဖိုးနှင့်သက်ဆိုင်သောအရောင်အညွှန်းကိန်းကိုပြန်လည်ပေးအပ်သည်။ ၎င်း၏အဓိကလုပ်ဆောင်ချက်မှာရုပ်ပုံများကိုပြုပြင်သည့်အခါရုပ်ပုံအတွင်းရှိအရောင်များကိုရှာဖွေရန်နှင့်ပြုပြင်ရန်ကူညီရန်ဖြစ်သည်။ ဤလုပ်ဆောင်မှုသည်အထူးသဖြင့်သေံမြေပုံရေးဆွဲသည့်အခါအရောင်ခြယ်ထားသောအရောင်ထိန်းချုပ်မှုအတွက်အလွန်အသုံးဝင်သည်။
int imagecolorresolve ( resource $image, int $r, int $g, int $b )
parameter သည်ဖော်ပြချက်:
$ Image : လုပ်ငန်းများ၌ရေးဆွဲမည့်ပုံရိပ်အရင်းအမြစ်။
$ R : အနီရောင်ချန်နယ်၏တန်ဖိုး (0 မှ 255) ။
$ g : အစိမ်းရောင်ချန်နယ်၏တန်ဖိုး (0 မှ 255) ၏တန်ဖိုး။
$ B : အပြာရောင်ချန်နယ်၏တန်ဖိုး (0 မှ 255) ၏တန်ဖိုး။
Value ကိုပြန်သွားပါ
တွေ့ရှိရသောအရောင်၏အညွှန်းကိန်းကိုညွှန်ပြတဲ့ကိန်းဂဏန်းကိုပြန်ပို့သည်။ အရောင်ကိုရှာမတွေ့ပါက -1 ကိုပြန်သွားပါ။
Hue Mapping သည်ပုံရိပ်အရောင်ညှိနှိုင်းမှု၏ဘုံနည်းလမ်းဖြစ်သည်။ pixel တစ်ခုချင်းစီ၏အရောင်, ပြည့်နှက်ခြင်းသို့မဟုတ်တောက်ပမှုကိုပြုပြင်ခြင်းဖြင့်ကွဲပြားခြားနားသောပုံသက်ရောက်မှုများကိုရရှိနိုင်သည်။ pixel တစ်ခုစီ၏အရောင်တန်ဖိုးကိုရှာဖွေရန်ကျွန်ုပ်တို့သည် isionecolorresolveolve () function ကို သုံး. သတ်သတ်မှတ်မှတ်စည်းမျဉ်းများအရအရောင်ကိုညှိပါ။
ကျွန်ုပ်တို့တွင်ရုပ်ပုံတစ်ခုရှိပြီးရိုးရှင်းသောအသံညှိနှိုင်းမှုအကျိုးသက်ရောက်မှုကိုရရှိလိုသည်ဆိုပါစို့။ ဥပမာအားဖြင့်, အနီရောင်တန်ချိန်ကိုရုပ်ပုံထဲမှအမှိုက်များနှင့်စိမ်းလန်းသောတန်ချိန်များပိုမိုတောက်ပစေပါ။ Pixel အရောင်များကိုရှာဖွေရန် imagecolorresolve () ကို သုံး. စိတ်ကြိုက်စည်းမျဉ်းစည်းကမ်းများမှတစ်ဆင့်ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။
<?php
// ပုံကိုတင်ခြင်း
$imagePath = "https://m66.net/images/sample.jpg";
$image = imagecreatefromjpeg($imagePath);
// ပုံ၏အကျယ်နှင့်အမြင့်ကိုရယူပါ
$width = imagesx($image);
$height = imagesy($image);
// pixel တစ်ခုစီမှတစ်ဆင့်ကြားခံနှင့်လေသံမြေပုံဆွဲခြင်း algorithm ကိုသုံးပါ
for ($y = 0; $y < $height; $y++) {
for ($x = 0; $x < $width; $x++) {
// လက်ရှိ pixel ၏အရောင်တန်ဖိုးကိုရယူပါ
$rgb = imagecolorat($image, $x, $y);
// ရယူRGBဘက်စပ်ပါဝင်ရာ
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
// Custom Tone မြေပုံစည်းမျဉ်းစည်းကမ်းများကို Apply
// ဒီမှာငါတို့အနီရောင်ချန်နယ်ထည့်ပါ,အစိမ်းရောင်ရုပ်သံလိုင်းကိုလျှော့ချပါ,နှင့်အပြာရောင်ရုပ်သံလိုင်း၏တောက်ပမှုကိုတိုးမြှင့်
$r = min($r + 20, 255); // အနီရောင် Darkening
$g = max($g - 30, 0); // အစိမ်းရောင်အားနည်းနေ
$b = min($b + 15, 255); // အပြာရောင်တောက်ပ
// အသုံးပြု imagecolorresolve() အရောင်အညွှန်းကိုရှာပါ
$colorIndex = imagecolorresolve($image, $r, $g, $b);
// အဘယ်သူမျှမသက်ဆိုင်ရာအရောင်ကိုရှာတွေ့ပါ,အရောင်အသစ်တစ်ခုဖန်တီးပါ
if ($colorIndex == -1) {
$colorIndex = imagecolorallocate($image, $r, $g, $b);
}
// ပြုပြင်ထားသောအရောင်ကိုပုံသို့ပြန်ထားပါ
imagesetpixel($image, $x, $y, $colorIndex);
}
}
// ပြုပြင်ထားသောပုံရိပ်ကိုထုတ်ပေးသည်
header('Content-Type: image/jpeg');
imagejpeg($image);
// မှတ်ဥာဏ်အခမဲ့မှတ်ဥာဏ်
imagedestroy($image);
?>
Loading Image : ကျွန်ုပ်တို့သည် JPEG format ပုံရိပ်ကို imagecreathertjpeg () function မှတဆင့် load လုပ်ပါ။ လက်တွေ့တွင်, ၎င်းကိုမည်သည့်ပုံရိပ်ပုံစံဖြင့်အစားထိုးနိုင်သည်။
ပုံရိပ်အရွယ်အစားကိုရယူပါ ။ ပုံ၏အကျယ်နှင့်အမြင့်ကို Imagesx () နှင့် ပုံရိပ်များ () functions များဖြင့်ရယူပါ။ pixel taversal အတွက်ပြင်ဆင်ပါ။
Pixel တစ်ခုစီကို pixel တစ်ခုချင်းစီကိုဖြတ်ပြီး current pixel ၏ RGB တန်ဖိုးကိုရယူရန်နှင့်အရောင်ချန်နယ်တစ်ခုစီ၏တန်ဖိုးကိုထုတ်ယူရန် imagecolorat () function ကိုသုံးပါ။
Tone မြေပုံရေးဆွဲခြင်းဆိုင်ရာစည်းမျဉ်းစည်းကမ်းများကိုအသုံးပြုခြင်း - ကျွန်ုပ်တို့၏လိုအပ်ချက်များနှင့်အညီရိုးရိုးရှင်းရှင်းစည်းမျဉ်းကိုကျွန်ုပ်တို့စိတ်ကြိုက်ပြုပြင်သည်။ အနီရောင်ချန်နယ်ကိုတိုးမြှင့်ခြင်း, အစိမ်းရောင်ချန်နယ်ကိုလျှော့ချပါ။
အရောင်အညွှန်းကိုရှာပါ ။ ချိန်ညှိထားသောအရောင်ကို isionecolorresolve () function မှတဆင့်ရှာပါ။ ရှာမတွေ့ပါကကျွန်ုပ်တို့သည်အရောင်အသစ်တစ်ခုကို ဖန်တီး. ရုပ်ပုံအသစ်တစ်ခုကိုဖန်တီးရန် ISESECOLORALANEALALACEAREALEACE ကိုအသုံးပြုသည်။
output image : နောက်ဆုံးတော့ဖိုင်ကို browser ကို browser ကို output လုပ်ဖို့ imagejpeg () function ကိုသုံးတယ်။
ပုံသဏ္ဌာန်အရေအတွက်အမြောက်အများနှင့်အလုပ်လုပ်သောအခါစွမ်းဆောင်ရည်ပြ issues နာများကိုမကြာခဏခေါ်ဆိုနိုင်သည့်အတွက်စွမ်းဆောင်ရည်ပြ issues နာများကိုဖြစ်ပေါ်စေနိုင်သည် ။ စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်အောက်ပါနည်းဗျူဟာများကိုထည့်သွင်းစဉ်းစားနိုင်သည် -
အရောင် cache : ထပ်ခါတလဲလဲတွက်ချက်မှုကိုရှောင်ရှားရန်မကြာခဏအရောင်များကိုအသုံးပြုသော cache ကိုမကြာခဏအသုံးပြုသည်။
ပုံအရွယ်အစားကိုလျှော့ချပါ ။
အသုတ်အပြောင်းအလဲ - လုပ်ငန်းများ၌လိုအပ်သည့်ပုံရိပ်များစွာအတွက်အပြောင်းအလဲရုံကိုအရှိန်မြှင့်ရန်အပြိုင်ပြုပြင်ခြင်းနည်းစနစ်များကိုအသုံးပြုသည်။
ISESECOSORRESOLVELESOLVEL () function ကိုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ပုံရိပ်၏အရောင်ကိုညှိရန်ပြောင်းလွယ်ပြင်လွယ်ရန်စိတ်ကြိုက်အသံဖြင့် algorithm ကိုအကောင်အထည်ဖော်နိုင်သည်။ cache နှင့်စွမ်းဆောင်ရည်အကောင်းဆုံးမဟာဗျူဟာများကိုပေါင်းစပ်ပြီးပုံရိပ်များအမြောက်အများကိုထိရောက်စွာလုပ်ဆောင်နိုင်ပြီးပုံရိပ်ထုတ်ပေးမှုစွမ်းဆောင်ရည်ကိုတိုးတက်ကောင်းမွန်စေနိုင်သည်။ ဤဆောင်းပါးတွင်ဥပမာများကဤလုပ်ဆောင်မှုကိုပိုမိုနားလည်ပြီးအသုံးပြုရန်မျှော်လင့်ပါသည်။