PHP တွင် IdentGIF () function ကိုများသောအားဖြင့် GIF ရုပ်ပုံများကိုထုတ်လုပ်ရန်အသုံးပြုသည်။ သို့သော် dynamic gifs ထုတ်လုပ်ရန်အသုံးပြုနိုင်ပါသလား။ အဖြေမှာ imageGIF () သည်ဘောင်များပါ 0 င်သောပြောင်းလဲနေသော GIF ပုံရိပ်များကိုတိုက်ရိုက်မထောက်ပံ့ပါ။ သို့သော်အကြံဥာဏ်များနှင့်အပိုဆောင်းအဆင့်အချို့နှင့်အတူ PHP ကို သုံး. dynamic gifs များကိုထုတ်လုပ်ရန်,
Dynamic GIF သည်တိကျသောအချိန်ကြားကာလတွင်သိသိသာသာပြသသည့် Multi-frame images (static gif images) ဖြင့်ဖွဲ့စည်းထားပါသည်, ထို့ကြောင့်၎င်းကိုရိုးရှင်းသောကာတွန်းသက်ရောက်မှုများရရှိရန်အသုံးပြုနိုင်သည်။ Dynamic GIF တစ်ခုတွင်ရုပ်ပုံ၏ဘောင်တစ်ခုစီသည်ကာတွန်း၏ "ယခုအချိန်တွင်" ကိုကိုယ်စားပြုသည်။
ImageGif () သည် dynamic gifs များကိုတိုက်ရိုက်မဖန်တီးနိုင်သော်လည်း Dynamic GIFs ထုတ်လုပ်ရန် PHP ရှိအခြားကိရိယာများသို့မဟုတ်တတိယပါတီစာကြည့်တိုက်များကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်၎င်းကိုအောက်ပါအဆင့်များမှတဆင့်အောင်မြင်နိုင်သည်။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ရုပ်ပုံဘောင်မျိုးစုံကိုဖန်တီးရန်လိုအပ်သည်။ ဤဘောင်များကို imagecreatetuecolor () သို့မဟုတ်ရှိပြီးသား image files များတင်ခြင်းဖြင့်ထုတ်လုပ်နိုင်ပါသည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ကွက်လပ်တစ်ခုဖန်တီးပါGIFအရုပ်</span></span><span>
</span><span><span class="hljs-variable">$image1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-variable">$image2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatetruecolor</span></span><span>(</span><span><span class="hljs-number">100</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>);
</span><span><span class="hljs-comment">// 为အရုပ်填充颜色</span></span><span>
</span><span><span class="hljs-variable">$bgColor</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image1</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// နီသော</span></span><span>
</span><span><span class="hljs-variable">$bgColor2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorallocate</span></span><span>(</span><span><span class="hljs-variable">$image2</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">255</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// စိမ်းလန်းသော</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$image1</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$bgColor</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagefill</span></span><span>(</span><span><span class="hljs-variable">$image2</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$bgColor2</span></span><span>);
</span><span><span class="hljs-comment">// အဖြစ်ဘောင်ကိုသိမ်းပါGIF</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagegif</span></span><span>(</span><span><span class="hljs-variable">$image1</span></span><span>, </span><span><span class="hljs-string">'frame1.gif'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagegif</span></span><span>(</span><span><span class="hljs-variable">$image2</span></span><span>, </span><span><span class="hljs-string">'frame2.gif'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
တက်ကြွသော GIF ဖိုင်ကိုထုတ်လုပ်ရန်အလွယ်ကူဆုံးနည်းလမ်းတစ်ခုမှာ PHP ၏ GD စာကြည့်တိုက်ကိုတတိယပါတီစာကြည့်တိုက်နှင့်ပေါင်းစပ်ရန် frame များကို synolamesize လုပ်ရန်တတိယပါတီစာကြည့်တိုက်နှင့်ပေါင်းစပ်ခြင်းဖြစ်သည်။ PHP ၏ GD စာကြည့်တိုက် သည် GIF ပုံများကိုတိုက်ရိုက်ထုတ်လွှင့်ခြင်းမပံ့ပိုးပါ။
ဥပမာအားဖြင့်, Gifcreator စာကြည့်တိုက်ကိုအသုံးပြုသောအခါ, ပြောင်းလဲနေသော GIFs ထုတ်လုပ်ခြင်းလုပ်ငန်းစဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">require_once</span></span><span>(</span><span><span class="hljs-string">'GifCreator.php'</span></span><span>);
</span><span><span class="hljs-comment">// ဖန်တီးGifCreatorကန့်ကွက်</span></span><span>
</span><span><span class="hljs-variable">$gc</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">GifCreator</span></span><span>();
</span><span><span class="hljs-comment">// 添加အရုပ်帧</span></span><span>
</span><span><span class="hljs-variable">$gc</span></span><span>-></span><span><span class="hljs-title function_ invoke__">create</span></span><span>(</span><span><span class="hljs-string">'frame1.gif'</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>); </span><span><span class="hljs-comment">// ပထမဘောင်, ပြသ100မီလီစက္ကန့်</span></span><span>
</span><span><span class="hljs-variable">$gc</span></span><span>-></span><span><span class="hljs-title function_ invoke__">create</span></span><span>(</span><span><span class="hljs-string">'frame2.gif'</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>); </span><span><span class="hljs-comment">// ဒုတိယဘောင်, ပြသ100မီလီစက္ကန့်</span></span><span>
</span><span><span class="hljs-comment">// dynamics generateGIF</span></span><span>
</span><span><span class="hljs-variable">$gc</span></span><span>-></span><span><span class="hljs-title function_ invoke__">saveGif</span></span><span>(</span><span><span class="hljs-string">'animated.gif'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် gifcreator စာကြည့်တိုက်ကို dynamic gif သို့ဖန်တီးရန် synthesize လုပ်ရန်စာကြည့်တိုက်ကိုအသုံးပြုသည်။ ဘောင်တစ်ခုစီ၏ display အချိန်ကိုဝင်လာသော parameters များကထိန်းချုပ်နိုင်သည်။
frame တစ်ခုစီ၏ display အချိန်သည်ကာတွန်းအကျိုးသက်ရောက်မှုသည်ချောမွေ့သည်ဖြစ်စေမသည်ဖြစ်စေဆုံးဖြတ်ရာတွင်အဓိကအချက်ဖြစ်သည်။ GIF Animation တွင်ဘောင်များအကြားကြားကာလသည်များသောအားဖြင့်ရေဒါဇင်နှင့်ရာပေါင်းများစွာသောမီလန်ကျောက်များအကြားဖြစ်သည်။ GIF ရဲ့ပြန်ဖွင့်အမြန်နှုန်းကိုအကျိုးသက်ရောက်ဖို့ဘောင်တစ်ခုစီအတွက် display image ကိုချိန်ညှိနိုင်ပါတယ်။
<span><span><span class="hljs-variable">$gc</span></span><span>-></span><span><span class="hljs-title function_ invoke__">create</span></span><span>(</span><span><span class="hljs-string">'frame1.gif'</span></span><span>, </span><span><span class="hljs-number">200</span></span><span>); </span><span><span class="hljs-comment">// 每帧ပြသ200မီလီစက္ကန့်</span></span><span>
</span><span><span class="hljs-variable">$gc</span></span><span>-></span><span><span class="hljs-title function_ invoke__">create</span></span><span>(</span><span><span class="hljs-string">'frame2.gif'</span></span><span>, </span><span><span class="hljs-number">300</span></span><span>); </span><span><span class="hljs-comment">// 每帧ပြသ300မီလီစက္ကန့်</span></span><span>
</span></span>
နောက်ဆုံးအနေဖြင့်ကာတွန်းဘောင်၏ပေါင်းစပ်မှုပြီးမြောက်ပြီးနောက်ထုတ်လုပ်ထားသော dynamic gif image ကိုသိမ်းဆည်းထားနိုင်သည်။
<span><span><span class="hljs-variable">$gc</span></span><span>-></span><span><span class="hljs-title function_ invoke__">saveGif</span></span><span>(</span><span><span class="hljs-string">'my_animation.gif'</span></span><span>);
</span></span>
ရိုးရှင်းသောဘောင်ပေါင်းစပ်ခြင်းနှင့်အချိန်ထိန်းချုပ်မှုကိုပြသခြင်းအပြင်,
frame count ကိုလျှော့ချပါ ။ frame count ကိုလျှော့ချခြင်းဖိုင်အရွယ်အစားကိုလျှော့ချနိုင်ပြီးသင့်တော်သောဘောင်အရေအတွက်သည်ကာတွန်း၏ချောမွေ့မှုကိုသေချာစေနိုင်သည်။
compressed GIFs : အရွယ်အစားကြီးမားသော gifs များအတွက်၎င်းတို့ကိုဖိုင်အရွယ်အစားလျှော့ချရန် compression tools များကို အသုံးပြု. အသုံးပြုနိုင်သည်။
Optimized Color Table - Dynamic GIFs တွင်အရောင်စားပွဲဝိုင်းတစ်ခုရှိပြီးအရောင်များနည်းပါးလာသည်။ ကျိုးကြောင်းဆီလျော်သောအရောင်များနှင့်အရောင်အစီအစဉ်များကိုရွေးချယ်ခြင်းသည် GIFs ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေနိုင်သည်။
ImageGIF () function သည် dynamic gifs များကိုတိုက်ရိုက်ထုတ်လုပ်သော်လည်း GIF များဖန်တီးပြီး gifcreator ကဲ့သို့သောပြင်ပစာကြည့်တိုက်များ အသုံးပြု. ဤဘောင်များဖန်တီးခြင်းဖြင့်ဤဘောင်များပြုလုပ်နိုင်သည့် dynamic gifs များသို့ပြောင်းလဲနိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် PHP ကို အသုံးပြု. ပြောင်းလဲနေသော GIFs များကိုထုတ်လုပ်ရန်အတွက် PHP ကိုအသုံးပြုခြင်းသည်ပိုမိုကောင်းမွန်သောစာကြည့်တိုက်အထောက်အပံ့နှင့်စစ်ဆင်ရေးများလိုအပ်သည်။
အထက်ပါအဆင့်များမှတစ်ဆင့် developer များက PHP ကို အသုံးပြု. PHP ကိုစိတ်ကြိုက်ပြောင်းလဲနေသော GIFs အမျိုးမျိုးကိုထုတ်လုပ်ရန်ပြောင်းလွယ်ပြင်လွယ်သုံးနိုင်သည်။ ဝက်ဘ်ဆိုက်များ, ကြော်ငြာ,