Project นี้หยุดพัฒนาแล้ว.
โปรดใช้ Image class version 3 แทน.
v image class เวอร์ชั่นแรกนั้น ถูกปล่อยออกมาในปี 2010 หรือพ.ศ.2553 นั่นเอง ซึ่งรุ่นแรกนั้นก็สามารถทำงานได้เป็นอย่างดี ทั้งในเรื่องการใช้ทรัพยากร memory ในการจัดการภาพก็น้อยมาก
เวอร์ชั่นที่ 2 นั้นก็ยังคงจุดเด่นไว้เช่นเดิม แต่เพิ่มประสิทธิภาพให้มากกว่า เช่น การใส่ watermark, การย่อ-ครอป-หมุนภาพ ที่ทำสลับกันไปมาหรือซ้ำๆได้อย่างอิสระ
license: MIT
ต้องการ PHP 5.3 เป็นอย่างต่ำ.
อ้างอิงค่า property/method
Name | Description | Example |
---|---|---|
Properties | ||
allow_resize_larger | อนุญาตให้ขยายรูปใหญ่กว่าต้นฉบับได้ (true/false) | $image->allow_resize_larger = false; |
jpg_quality | กำหนดคุณภาพของรูป jpg (0-100) | $image->jpg_quality = 100; |
png_quality | กำหนดคุณภาพของรูป png (0-9) | $image->png_quality = 0; |
master_dim | กำหนดให้ยึดแนวที่ระบุเป็นหลัก (auto, width, height) | $image->master_dim = 'auto'; |
status | ตรวจสอบค่าที่ได้หลังเรียก method ใดๆเพื่อทำงาน จะได้ค่า true, false |
if ($image->status == false) {// fail.} |
status_msg | เรียกดูสถานะที่ได้หลังเรียก method ใดๆเพื่อทำงาน จะได้ค่า string |
echo $image->status_msg; |
Methods | ||
clear() | ล้างค่าต่างๆเมื่อทำงานเสร็จ เช่น หากกรณีต้องการย่อภาพหลายๆภาพ ให้ทำการล้างค่านี้ก่อนทำการเรียกย่อภาพลำดับต่อไป | $image->clear(); |
crop($width = '', $height = '', $start_x = '0', $start_y = '0', $fill = 'transparent') | ครอปภาพตามขนาดที่กำหนด $width ความกว้างที่จะทำการครอป $height ความสูง $start_x ตำแหน่งที่จะเริ่มต้นในแกน x (ตัวเลขหรือ 'center') $start_y ตำแหน่งที่จะเริ่มต้นในแกน y (ตัวเลขหรือ 'middle') $fill สีที่จะทำการเทเมื่อเป็นภาพที่มีส่วนโปร่งใส (white, black, transparent) |
$image->crop(500, 500, 'center', 'middle'); |
getImageSize() | ส่งกลับค่าขนาดของภาพในแบบ array ['width'] and ['height'] | $size = $image->getImageSize(); $width = $size['width']; $height = $size['height']; |
resize($width, $height) | เปลี่ยนขนาดภาพตามอัตราส่วน $width ความกว้าง $height ความสูง |
$image->resize(500, 500); |
resizeNoRatio($width, $height) | เปลี่ยนขนาดภาพโดยไม่สนใจอัตราส่วน $width ความกว้าง $height ความสูง |
$image->resizeNoRatio(1000, 500); |
rotate($degree = '90') | หมุนภาพ โดยค่า $degree จะหมุนทวนเข็มนาฬิกาเสมอ หากต้องการหมุน 90 องศาไปทางขวาตามเข็มนาฬิกาให้ใช้ 270 $degree ค่าองศาในการหมุนภาพ (0, 90, 180, 270) สำหรับผู้ใช้ PHP รุ่น 5.5 หรือใหม่กว่า สามารถใช้การ flip ได้โดยกำหนดเป็น (hor, vrt, horvrt) |
$image->rotate(90); |
watermarkImage($wm_img_path = '', $wm_img_start_x = 0, $wm_img_start_y = 0) | เพิ่มลายน้ำให้กับภาพโดยใช้ลายน้ำแบบรูปภาพ $wm_img_path พาธรูปภาพที่เป็นลายน้ำ $wm_img_start_x ตำแหน่งเริ่มต้นในแกน x กำหนดเป็นตัวเลข หรือ 'left', 'center', 'right' $wm_img_start_y ตำแหน่งเริ่มต้นในแกน y กำหนดเป็นตัวเลข หรือ 'top', 'middle', 'bottom' |
$image->watermarkImage('watermark.png', 'center', 'middle'); |
watermarkText($wm_txt_text = '', $wm_txt_font_path = '', $wm_txt_start_x = 0, $wm_txt_start_y = 0, $wm_txt_font_size = 10, $wm_txt_font_color = 'transwhitetext', $wm_txt_font_alpha = 60) | เพิ่มลายน้ำให้กับภาพโดยใช้ลายน้ำแบบข้อความ $wm_txt_text ข้อความที่จะเป็นลายน้ำ $wm_txt_font_path พาธไฟล์ที่เป็น true type font $wm_txt_start_x ตำแหน่งเริ่มต้นในแกน x กำหนดเป็นตัวเลข หรือ 'left', 'center', 'right' $wm_txt_start_y ตำแหน่งเริ่มต้นในแกน y กำหนดเป็นตัวเลข หรือ 'top', 'middle', 'bottom' $wm_txt_font_size ขนาดตัวอักษร กำหนดเป็นตัวเลข $wm_txt_font_color สีตัวอักษร กำหนดเป็น 'black', 'white', 'transwhitetext' $wm_txt_font_alpha ความใสของตัวอักษร กำหนดเป็นตัวเลข (0-127) |
$image->watermarkText('Copyright. 2013', 'tahoma.ttf', 'center', 'middle', 14); |
save($file_name = '', $file_ext = '') | บันทึกภาพลงเป็นไฟล์ $file_name พาธและชื่อไฟล์ที่จะบันทึก $file_ext นามสกุลไฟล์ |
$image->save('image-resized/new-image.jpg'); |
show($file_ext = '') | แสดงภาพทางเบราเซอร์ $file_ext นามสกุลไฟล์ |
$image->show(); |
ตัวอย่าง
ย่อภาพอย่างเดียว
include 'Okvee\Vimage\Vimage.php';
$image_file = __DIR__ . '/img-source/beach.png';
if (!file_exists($image_file)) {
die('Image file is not exists.');
}
$image = new Okvee\Vimage\Vimage($image_file);
header('Content-type: ' . $image->original_img_mime);
$image->resize(800, 800);
$image->show();
ขยายภาพอย่างเดียว (ถ้าภาพต้นฉบับเล็กกว่า)
include 'Okvee\Vimage\Vimage.php';
$image_file = __DIR__ . '/img-source/beach.png';
if (!file_exists($image_file)) {
die('Image file is not exists.');
}
$image = new Okvee\Vimage\Vimage($image_file);
header('Content-type: ' . $image->original_img_mime);
$image->allow_resize_larger = true;
$image->resize(1500, 1500);
$image->show();
ครอปภาพแล้วย่อ
include 'Okvee\Vimage\Vimage.php';
$image_file = __DIR__ . '/img-source/beach.png';
if (!file_exists($image_file)) {
die('Image file is not exists.');
}
$image = new Okvee\Vimage\Vimage($image_file);
header('Content-type: ' . $image->original_img_mime);
$image->crop(1000, 1000, 'center', 'middle');
$image->resize(800, 800);
$image->show();
ครอปภาพแล้วย่อแล้วหมุน 270 องศา
include 'Okvee\Vimage\Vimage.php';
$image_file = __DIR__ . '/img-source/beach.png';
if (!file_exists($image_file)) {
die('Image file is not exists.');
}
$image = new Okvee\Vimage\Vimage($image_file);
header('Content-type: ' . $image->original_img_mime);
$image->crop(1000, 1000, 'center', 'middle');
$image->resize(800, 800);
$image->rotate(270);
$image->show();
ย่อภาพครั้งละหลายๆรูป (ใช้การ save ไม่ใช้การ show)
include 'Okvee\Vimage\Vimage.php';
$image = new Okvee\Vimage\Vimage('/path/to/image1.jpg');
$image->resize(800, 800);
$image->save('/path/to/new-image1.jpg');
$image->clear();
$image = new Okvee\Vimage\Vimage('/path/to/image2.jpg');
$image->resize(800, 800);
$image->save('/path/to/new-image2.jpg');
$image->clear();
ตัวอย่างการใส่ลายน้ำ
ครอปภาพแล้วย่อแล้วใส่ลายน้ำแบบภาพ
include 'Okvee\Vimage\Vimage.php';
$image_file = __DIR__ . '/img-source/beach.png';
$watermark_file = __DIR__ . '/img-source/wm.png';
if (!file_exists($image_file)) {
die('Image file is not exists.');
}
$image = new Okvee\Vimage\Vimage($image_file);
header('Content-type: ' . $image->original_img_mime);
$image->crop(1000, 1000, 'center', 'middle');
$image->resize(800, 800);
$image->watermarkImage($watermark_file, 'center', 'middle');
$image->show();
ครอปภาพแล้วย่อแล้วใส่ลายน้ำแบบข้อความ
include 'Okvee\Vimage\Vimage.php';
$image_file = __DIR__ . '/img-source/beach.png';
$watermark_font = __DIR__ . '/font/circular.ttf';
if (!file_exists($image_file)) {
die('Image file is not exists.');
}
$image = new Okvee\Vimage\Vimage($image_file);
header('Content-type: ' . $image->original_img_mime);
$image->crop(1000, 1000, 'center', 'middle');
$image->resize(800, 800);
$image->watermarkText('A cat. แมวเมี๊ยว.', $watermark_font, 'center', 'middle', 20, 'transwhitetext', 55);
$image->show();
นอกจากนี้ผู้พัฒนายังสามารถนำการ crop, resize, rotate มาใช้สลับกันไปมาหรือใช้ซ้ำๆ ในการจัดการกับภาพ 1 ภาพโดยที่ยังไม่ต้อง save ยกตัวอย่างเช่น
ย่อภาพก่อน แล้วครอป แล้วหมุน แล้วย่อภาพอีกที
หากพบข้อผิดพลาดใดๆ โปรดแจ้งผ่านทางช่องความคิดเห็นด้านล่างนี้.