Site icon บริษัท โค๊ดบี จำกัด

HTML5 โหลดรูปเข้ามาแสดงใน Canvas ด้วย Ajax

html5-เริ่มต้นเขียน

html5-เริ่มต้นเขียน

<h3>HTML5 โหลดรูปเข้ามาแสดงใน Canvas ด้วย Ajax<&sol;h3>&NewLine;<p><&sol;br><br &sol;>&NewLine;ใน HTML5 Canvas เราสามารถโหลดรูปให้เสร็จก่อนและใช้คลาส new Image&lpar;&rpar; โหลดรูปอีกรอบหนึ่งก่อนที่ใช้<br &sol;>&NewLine;คำสั่ง drawImage ของ context 2d เพื่อวาดรูปให้แสดงผลบน Canvas<br &sol;>&NewLine;<&excl;--more--><&sol;p>&NewLine;<p><&sol;br><br &sol;>&NewLine;สาเหตุที่เราจำเป็นต้องใช้คำสั่งของ Ajax โหลดรูปก่อน ก็เพื่อให้แน่ใจว่ารูปนั้นโหลดเสร็จแล้วหรือในการทำงานจริง ๆ<br &sol;>&NewLine;เราอาจจะต้องการทำ preloading หรือ progress bar เพื่อโหลดรูปทั้งหมดให้เสร็จก่อนที่จะเริ่มทำงานส่วนอื่น ๆ<&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;<h4>โหลดรูปเข้ามาใน HTML5 Canvas<&sol;h4>&NewLine;<p>เริ่มต้นสร้าง canvas ภายใน html body tag<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&lt&semi;canvas id&equals;"canvas" width&equals;"800" height&equals;"600"&gt&semi;&lt&semi;&sol;canvas&gt&semi;<&sol;pre>&NewLine;<p>โหลดรูปให้เสร็จหรือทำ progress bar ในขั้นตอนนี้ ด้วย Jquery Ajax<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " > &NewLine;var imageURL &equals; "https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;images&sol;logo1&commat;2x&period;png"&semi; &NewLine;var request &equals; &dollar;&period;ajax&lpar;&lbrace; &NewLine;&Tab;url&colon; imageURL&comma; &NewLine;&Tab;crossDomain&colon; true&comma; &NewLine;&Tab;type&colon; "HEAD"&comma; &NewLine;&Tab;cache&colon; true&comma; &NewLine;&rcub;&rpar;&semi; &NewLine;request&period;done&lpar;function &lpar;&rpar; &lbrace; &NewLine;&Tab;&Tab;&Tab; &NewLine;&rcub;&rpar;&semi;<&sol;pre>&NewLine;<p>วาดรูปลงใน Canvas ด้วยคำสั่ง drawImage ของ Context 2D<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >var img &equals; new Image&lpar;&rpar;&semi; &NewLine;img&period;onload &equals; function&lpar;&rpar; &lbrace; &NewLine;&Tab;context&period;drawImage&lpar;this&comma; &lpar;canvas&period;width&ast;0&period;5&rpar;-&lpar;img&period;width&ast;0&period;5&rpar;&comma; &lpar;canvas&period;height&ast;0&period;5&rpar;-&lpar;img&period;height&ast;0&period;5&rpar;&rpar;&semi; &NewLine;&rcub;&semi; &NewLine;img&period;src &equals; imageURL&semi;<&sol;pre>&NewLine;<p>กำหนดตำแหน่ง x และ y ของรูปให้อยู่ตรงกลางโดยคำนวณจากขนาดของ canvas และขนาดรูป<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >context&period;drawImage&lpar;this&comma; &lpar;canvas&period;width&ast;0&period;5&rpar;-&lpar;img&period;width&ast;0&period;5&rpar;&comma; &lpar;canvas&period;height&ast;0&period;5&rpar;-&lpar;img&period;height&ast;0&period;5&rpar;&rpar;&semi;<&sol;pre>&NewLine;<p>ใช้ CSS กำหนดตำแหน่งให้ Canvas Element อยู่ตรงกลางเว็บเบราว์เซอร์<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&lt&semi;style&gt&semi; &NewLine;canvas &lbrace; &NewLine;&Tab;padding-left&colon; 0&semi; &NewLine;&Tab;padding-right&colon; 0&semi; &NewLine;&Tab;margin-left&colon; auto&semi; &NewLine;&Tab;margin-right&colon; auto&semi; &NewLine;&Tab;display&colon; block&semi; &NewLine;&Tab;width&colon; 800px&semi; &NewLine;&rcub; &NewLine;&lt&semi;&sol;style&gt&semi;<&sol;pre>&NewLine;<p>ทดสอบการทำงานของโค๊ดทั้งหมด<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&lt&semi;html&gt&semi; &NewLine; &lt&semi;head&gt&semi; &NewLine; &lt&semi;script src&equals;"https&colon;&sol;&sol;ajax&period;googleapis&period;com&sol;ajax&sol;libs&sol;jquery&sol;3&period;1&period;0&sol;jquery&period;min&period;js"&gt&semi;&lt&semi;&sol;script&gt&semi; &NewLine; &lt&semi;style&gt&semi; &NewLine; &Tab;canvas &lbrace; &NewLine;&Tab;&Tab;padding-left&colon; 0&semi; &NewLine;&Tab;&Tab;padding-right&colon; 0&semi; &NewLine;&Tab;&Tab;margin-left&colon; auto&semi; &NewLine;&Tab;&Tab;margin-right&colon; auto&semi; &NewLine;&Tab;&Tab;display&colon; block&semi; &NewLine;&Tab;&Tab;width&colon; 800px&semi; &NewLine;&Tab;&rcub; &NewLine; &lt&semi;&sol;style&gt&semi; &NewLine; &lt&semi;&sol;head&gt&semi; &NewLine; &lt&semi;body&gt&semi; &NewLine; &lt&semi;canvas id&equals;"canvas" width&equals;"800" height&equals;"600"&gt&semi;&lt&semi;&sol;canvas&gt&semi; &NewLine; &lt&semi;script&gt&semi; &NewLine; var canvas &equals; document&period;getElementById&lpar;'canvas'&rpar;&semi; &NewLine;&Tab; var context &equals; canvas&period;getContext&lpar;'2d'&rpar;&semi; &NewLine;&Tab; canvas&period;style&period;backgroundColor &equals; "&num;d8322b"&semi; &NewLine;&Tab; &NewLine;&Tab; var imageURL &equals; "https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;images&sol;logo1&commat;2x&period;png"&semi; &NewLine;&Tab; var request &equals; &dollar;&period;ajax&lpar;&lbrace; &NewLine;&Tab;&Tab;&Tab;url&colon; imageURL&comma; &NewLine;&Tab;&Tab;&Tab;crossDomain&colon; true&comma; &NewLine;&Tab;&Tab;&Tab;type&colon; "HEAD"&comma; &NewLine;&Tab;&Tab;&Tab;cache&colon; true&comma; &NewLine;&Tab;&Tab;&rcub;&rpar;&semi; &NewLine;&Tab;&Tab;request&period;done&lpar;function &lpar;&rpar; &lbrace; &NewLine;&Tab;&Tab;&Tab;var img &equals; new Image&lpar;&rpar;&semi; &NewLine;&Tab;&Tab;&Tab;img&period;onload &equals; function&lpar;&rpar; &lbrace; &NewLine;&Tab;&Tab;&Tab; context&period;drawImage&lpar;this&comma; &lpar;canvas&period;width&ast;0&period;5&rpar;-&lpar;img&period;width&ast;0&period;5&rpar;&comma; &lpar;canvas&period;height&ast;0&period;5&rpar;-&lpar;img&period;height&ast;0&period;5&rpar;&rpar;&semi; &NewLine;&Tab;&Tab;&Tab;&rcub;&semi; &NewLine;&Tab;&Tab;&Tab;img&period;src &equals; imageURL&semi; &NewLine;&Tab;&Tab;&rcub;&rpar;&semi; &NewLine; &lt&semi;&sol;script&gt&semi; &NewLine; &lt&semi;&sol;body&gt&semi; &NewLine;&lt&semi;&sol;html&gt&semi; <&sol;pre>&NewLine;<p>ตัวอย่างการทำงาน <a href&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;examples&sol;HTML5-โหลดรูปเข้ามาแสดงใน-Canvas-ด้วย-Ajax&period;html" target&equals;"&lowbar;blank">HTML5-โหลดรูปเข้ามาแสดงใน-Canvas-ด้วย-Ajax&period;html<&sol;a><br &sol;>&NewLine;<iframe src&equals;"https&colon;&sol;&sol;www&period;codebee&period;co&period;th&sol;labs&sol;examples&sol;HTML5-โหลดรูปเข้ามาแสดงใน-Canvas-ด้วย-Ajax&period;html" width&equals;"640" height&equals;"480" scrolling&equals;"no" frameborder&equals;"0"><&sol;iframe><&sol;p>&NewLine;

Exit mobile version