ใส่ข้อความบนรูปภาพด้วยการใช้ฟังก์ชั่น GD Library ของ PHP


สวัสดีครับ บทความวันนี้เป็นเรื่องเกี่ยวกับรูปภาพอีกครับ แต่เป็นแบบการใช้เรียกใช้งาน Library ของ PHP มาทำงานร่วมด้วย ตัว Library ที่ทำงานเกี่ยวกับรูปภาพนี้ก็คือ GD Library ครับ โดยLibrary ตัวนี้ ถ้าคุณติดตั้ง PHP แบบตัว installer จะไม่ได้ package มาด้วย คุณจะต้องหาเอามาใส่เองในภายหลังเมื่อต้องการใช้
โดยตัว GD Library นี้จะ package มากับโปรแกรม PHP ที่เป็นไฟล์ zip แบบเอามาติดตั้งเองครับ แต่ถ้าใครใช้ appserv และ wmserver tool ได้ทำการ package มาให้แล้วนะครับ ไม่ต้องแก้ไขใดๆทั้งสิ้น
โดยตัว GD Library นี้จะ package มากับโปรแกรม PHP ที่เป็นไฟล์ zip แบบเอามาติดตั้งเองครับ แต่ถ้าใครใช้ appserv และ wmserver tool ได้ทำการ package มาให้แล้วนะครับ ไม่ต้องแก้ไขใดๆทั้งสิ้น
สำหรับใครที่ยังไม่มีให้ดาวน์โหลดไฟล์โปรแกรมนี้ไป แล้วมันจะมีไฟล์ php_gd2.dll มาให้ด้วยนะครับดาวน์โหลดที่นี่
มาเริ่มกันเลยครับ ….
ก่อนการเขียนโปรแกรมให้เรามาดูเรื่อง GD ไลบารี่ก่อนว่าเครื่องคุณได้ทำการติดตั้งไว้หรือเปล่า สำหรับไฟล์ GD Library นี้จะอยู่ในโฟลเดอร์ของโปรแกรม php ที่ php/extensions/ ให้คุณลองดูว่ามีไฟล์ php_gd2.dll อยู่หรือไม่ ถ้าไม่มีก็เอาไฟล์ php_gd2.dll ที่ผมให้ดาวน์โหลดไป แล้วเอาไปใส่ในโฟลเดอร์ php/extensions/ ได้เลยครับ

จากนั้นให้เข้าไปใน C:/windows/ เปิดไฟล์ php.ini ขึ้นมา

ทำการค้นหาคำว่า php_gd2.dll

เมื่อเจอแล้วให้เอาเครื่องหมาย เซมิโคลอน( ; )หน้า extension=”php_gd2.dll” ออก เพื่อให้มันทำงาน แล้วทำการบันทึกค่าใหม่ลงไป แค่นี้ก็เสร็จแล้วครับ

เรามาดูผลลัพธ์ของรูปก่อนที่จะดูโค้ดโปรแกรมกัน
รูปก่อนใส่ข้อความ

รูปหลังจากโปรแกรมได้ใส่ข้อความแล้ว

โค้ดส่วนแรกคือส่วน Header เอาไว้กำหนดรูปแบบของไฟล์รูปที่จะสร้าง เช่น png= image/png , jpeg= image/jpeg, gif =image/gif เป็นต้น
header (“Content-type: image/png”); |
ต่อมา เป็นการกำหนดรูปจากไฟล์ โดยใช้ imagecreatefromjpeg คือไฟล์ที่รูปเป็น .jpg
คุณสามารถกำหนดให้เปลี่ยนตามรูปแบบชนิดไฟล์ของรูปที่คุณต้องการได้ เช่น ถ้ารูปเป็น .jpg= imagecreatefromjpeg , .png=imagecreatefrompng, .gif=imagecreatefromgif เป็นต้น และต้องกำหนดแหล่งที่เก็บของรูปให้ถูกต้องด้วย ดังตัวอย่างโค้ดข้างล่างนี้ ไฟล์รูป test01.jpg อยู่ในไดเร็คทรอรี่เดียวกับไฟล์ของโปรแกรมนี้
คุณสามารถกำหนดให้เปลี่ยนตามรูปแบบชนิดไฟล์ของรูปที่คุณต้องการได้ เช่น ถ้ารูปเป็น .jpg= imagecreatefromjpeg , .png=imagecreatefrompng, .gif=imagecreatefromgif เป็นต้น และต้องกำหนดแหล่งที่เก็บของรูปให้ถูกต้องด้วย ดังตัวอย่างโค้ดข้างล่างนี้ ไฟล์รูป test01.jpg อยู่ในไดเร็คทรอรี่เดียวกับไฟล์ของโปรแกรมนี้
$img = imagecreatefromjpeg(“test01.jpg”); |
โค้ดโปรแกรมลำดับต่อมาคือการกำหนดสีด้วยฟังก์ชั่น imagecolorallocate โดยฟังก์ชั่นนี้จะใช้ระบบสีแบบ RGB คือ สี แดง(R) เขียว(G) น้ำเงิน(B) ของตัวเลขจำนวนเต็ม 0 – 255 เพื่อเอามาผสมกันจนเกิดสีที่ต้องการ
เช่น แดง = 255,0,0
เขียว = 0,255,0
เทาเข้ม = 128,128,128
เทาอ่อน = 192,192,192
ขาว = 255,255,255
ดำ = 0,0,0
ฟ้า = 0,255,255
ม่วง = 255,0,255
เหลือง = 255,255,0
น้ำเงิน = 0,0,255
เป็นต้น ดังตัวอย่างโค้ดข้างล่างนี้ผมได้สร้างตัวแปร $color_red เพื่อเก็บค่าของสีแดงเอาไว้ คือ 255, 0, 0 และ$img คือตัวแปรไฟล์ของรูปที่เราได้เก็บเอาไว้ในตัวแปรเมื่อก่อนหน้านี้มาทำงานร่วมใน imagecolorallocate ด้วย
เช่น แดง = 255,0,0
เขียว = 0,255,0
เทาเข้ม = 128,128,128
เทาอ่อน = 192,192,192
ขาว = 255,255,255
ดำ = 0,0,0
ฟ้า = 0,255,255
ม่วง = 255,0,255
เหลือง = 255,255,0
น้ำเงิน = 0,0,255
เป็นต้น ดังตัวอย่างโค้ดข้างล่างนี้ผมได้สร้างตัวแปร $color_red เพื่อเก็บค่าของสีแดงเอาไว้ คือ 255, 0, 0 และ$img คือตัวแปรไฟล์ของรูปที่เราได้เก็บเอาไว้ในตัวแปรเมื่อก่อนหน้านี้มาทำงานร่วมใน imagecolorallocate ด้วย
$color_red = imagecolorallocate($img, 255, 0, 0); |
ลำดับต่อมา เป็นการใส่ข้อความลงบนรูป โดยใช้ฟังก์ชั่น imagestring(ที่เก็บของรูป,ขนาดตัวอักษร,ตำแหน่งของตัวอักษรแนวนอน,ตำแหน่งของตัวอักษรแนวตั้ง,สีตัวอักษรแบบ RGB) ดังโค้ดข้างล่างนี้
imagestring($img,3,30,180,”By CMSsociety.com”,$color_red); |
กำหนดให้แสดงผล โดยเรียกรูปภาพขึ้นมาแสดงผล ด้วยฟังก์ชั่น
png=imagepng();
jpg=imagejpeg();
gif=imagegif();
แต่ต้องใช้ให้ถูกประเภทของรูปที่เราได้สร้างเอาไว้ด้วยนะครับ
png=imagepng();
jpg=imagejpeg();
gif=imagegif();
แต่ต้องใช้ให้ถูกประเภทของรูปที่เราได้สร้างเอาไว้ด้วยนะครับ
imagepng($img); |
สุดท้าย เป็นการคืนค่าให้หน่วยความจำ
imagedestroy($img); |
มาดูรูปโค้ดโปรแกรมกันแบบเต็ม

ผลลัพธ์ของโปรแกรมก็ได้เป็นแบบข้างต้นที่ผมได้กล่าวไปแล้วนะครับ มีตรงไหนไม่เข้าใจต้องการให้อธิบายเพิ่มเติมอีกที ก็โพสบอกไว้นะครับ เดี๋ยวจะเข้ามาตอบให้
เอาโปรแกรมนี้ไปประยุกต์ดูครับ เช่น เอาไปพัฒนาเข้ากับระบบอัพโหลดรูปก็ได้ครับ ว่าถ้าเมื่อเราอัพโหลดรูปของเราเข้าระบบไปแล้ว ก็ให้เรียกใช้งานโปรแกรม GD ไลบารี่ เพื่อเขียนข้อความลงบนรูปนั้นๆและ สร้างไฟล์ แล้วเขียนข้อความลิขสิทธิ์ของเราไว้บนรูปนั้นๆก็ได้
วันนี้แค่นี้นะ เอาไว้เจอกันใหม่ในบทความวันพรุ่งนี้ครับ ขอบคุณทุกท่านที่ติดตามชมกันมาโดยตลอด สวัสดีครับ บาย……
เอาโปรแกรมนี้ไปประยุกต์ดูครับ เช่น เอาไปพัฒนาเข้ากับระบบอัพโหลดรูปก็ได้ครับ ว่าถ้าเมื่อเราอัพโหลดรูปของเราเข้าระบบไปแล้ว ก็ให้เรียกใช้งานโปรแกรม GD ไลบารี่ เพื่อเขียนข้อความลงบนรูปนั้นๆและ สร้างไฟล์ แล้วเขียนข้อความลิขสิทธิ์ของเราไว้บนรูปนั้นๆก็ได้
วันนี้แค่นี้นะ เอาไว้เจอกันใหม่ในบทความวันพรุ่งนี้ครับ ขอบคุณทุกท่านที่ติดตามชมกันมาโดยตลอด สวัสดีครับ บาย……
0 ความคิดเห็น:
แสดงความคิดเห็น