Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> PHP

วิธีการใช้ฟิลเตอร์กับภาพโดยใช้ฟังก์ชัน imagefilter() ใน PHP

imagefilter() เป็นฟังก์ชันในตัวของ PHP ที่ใช้เพื่อใช้ฟิลเตอร์ที่กำหนดกับภาพ

รูปแบบการใช้งาน (Syntax)

bool imagefilter(resource $image, int $filtertype, int $arg1, int $arg2, int $arg3, int $arg4)

พารามิเตอร์

imagefilter() รับพารามิเตอร์ 6 ตัว ได้แก่ $image, int $filtertype, int $arg1, int $arg2, int $arg3, int $arg4

  • $image - เก็บทรัพยากรภาพ (image resource)

  • $filtertype - ระบุฟิลเตอร์ที่จะใช้ ซึ่งเป็นจำนวนเต็ม

ด้านล่างนี้คือค่าคงที่ของฟิลเตอร์ภาพที่แตกต่างกัน:

  • IMG_FILTER_NEGATE - กลับสีทั้งหมดของภาพ

  • IMG_FILTER_GRAYSCALE - แปลงภาพเป็นโทนสีเทาโดยการเปลี่ยนส่วนประกอบสีแดง เขียว และน้ำเงินเป็นผลรวมถ่วงน้ำหนัก

  • IMG_FILTER_BRIGHTNESS - เปลี่ยนความสว่างของภาพ arg1 ใช้ตั้งค่าระดับความสว่าง ช่วงค่าคือ -255 ถึง 255

  • IMG_FILTER_CONTRAST - เปลี่ยนคอนทราสต์ของภาพ $arg1 ใช้ตั้งค่าระดับคอนทราสต์

  • IMG_FILTER_COLORIZE - ฟิลเตอร์นี้คล้าย IMG_FILTER_GRAYSCALE แต่สามารถระบุสีได้ ใช้ arg1, arg2, และ $arg3 ในรูปแบบแดง เขียว น้ำเงิน และ arg4 สำหรับช่องอัลฟา ช่วงค่าสีแต่ละสีคือ 0 ถึง 255

  • IMG_FILTER_EDGEDETECT - ใช้สำหรับตรวจจับขอบเพื่อเน้นขอบในภาพ

  • IMG_FILTER_GAUSSIAN_BLUR - ใช้การเบลอแบบ Gaussian กับภาพ

  • IMG_FILTER_SELECTIVE_BLUR - ใช้การเบลอแบบเลือกกับภาพ

  • IMG_FILTER_EMBOSS - ใช้เอฟเฟกต์ Emboss กับภาพ

  • IMG_FILTER_MEAN_REMOVAL - กำจัดสัญญาณรบกวนจากภาพและให้เอฟเฟกต์แบบสเก็ตช์

  • IMG_FILTER_SMOOTH - ทำให้ภาพเรียบขึ้น $arg1 ใช้ตั้งค่าระดับความเรียบ

  • IMG_FILTER_PIXELATE - ใช้เอฟเฟกต์พิกเซลเลทกับภาพ $arg1 ใช้ตั้งค่าขนาดบล็อก และ $arg2 สำหรับโหมดพิกเซลเลท

  • IMG_FILTER_SCATTER - ใช้เอฟเฟกต์กระจายกับภาพ $arg1 และ arg2 ใช้กำหนดความเข้มของเอฟเฟกต์ และ $arg3 ใช้สำหรับใช้กับสีพิกเซลที่เลือก

รายการอาร์กิวเมนต์เสริม (Optional Arguments)

arg1

  • IMG_FILTER_BRIGHTNESS - ใช้สำหรับระดับความสว่าง

  • IMG_FILTER_CONTRAST - ใช้สำหรับระดับคอนทราสต์

  • IMG_FILTER_COLORIZE - ใช้สำหรับค่าส่วนประกอบสีแดง

  • IMG_FILTER_SMOOTH - ใช้สำหรับระดับความเรียบ

  • IMG_FILTER_PIXELATE - ใช้สำหรับขนาดบล็อกในพิกเซล

  • IMG_FILTER_SCATTER - ใช้สำหรับระดับการลบเอฟเฟกต์

arg2

  • IMG_FILTER_COLORIZE - ใช้สำหรับค่าส่วนประกอบสีน้ำเงิน

  • IMG_FILTER_PIXELATE - ว่าจะใช้เอฟเฟกต์พิกเซลเลทขั้นสูงหรือไม่ (ค่าเริ่มต้นเป็น false)

  • IMG_FILTER_SCATTER - ระดับการเพิ่มเอฟเฟกต์

arg3

  • IMG_FILTER_COLORIZE - ใช้สำหรับค่าส่วนประกอบสีเขียว

  • IMG_FILTER_SCATTER - อาร์เรย์ตัวเลือกของค่าสีดัชนีเพื่อใช้เอฟเฟกต์

arg4

  • IMG_FILTER_COLORIZE - ช่องอัลฟา ค่าระหว่าง 0 ถึง 127 0 หมายถึงทึบแท้ ในขณะที่ 127 หมายถึงโปร่งใสสมบูรณ์

ค่าที่คืนกลับ (Return Values)

คืนค่า True เมื่อสำเร็จ และ False เมื่อล้มเหลว

ตัวอย่างที่ 1

<?php 
// โหลดภาพ GIF จากโฟลเดอร์ดิสก์ท้องถิ่น
$img = imagecreatefromgif('C:\xampp\htdocs\Images\img39.gif');
// ใช้ฟิลเตอร์ Colorize กับภาพ
imagefilter($img, IMG_FILTER_COLORIZE, 140, 0, 140, 20);
// แสดงภาพผลลัพธ์
header('Content-type: image/gif');
imagepng($img); 
?>

ผลลัพธ์

วิธีการใช้ฟิลเตอร์กับภาพโดยใช้ฟังก์ชัน imagefilter() ใน PHP

ตัวอย่างที่ 2

<?php 
// โหลดภาพ GIF จากโฟลเดอร์ดิสก์ท้องถิ่น
$img = imagecreatefromgif('C:\xampp\htdocs\Images\img39.gif');
// ใช้ฟิลเตอร์ Negative กับภาพ
imagefilter($img, IMG_FILTER_NEGATE);
// แสดงภาพผลลัพธ์
header('Content-type: image/gif');
imagepng($img); 
?>

ผลลัพธ์

วิธีการใช้ฟิลเตอร์กับภาพโดยใช้ฟังก์ชัน imagefilter() ใน PHP