คลาส PHP ที่ทำให้การทำงานกับรูปภาพง่ายที่สุด
พัฒนาและดูแลโดย Cory LaViska
หากโปรเจ็กต์นี้ทำให้คุณชื่นชอบการจัดการรูปภาพ PHP อีกครั้ง โปรดพิจารณาสนับสนุนฉันเพื่อสนับสนุนการพัฒนา
<?php
try {
// Create a new SimpleImage object
$ image = new claviska SimpleImage ();
// Magic !
$ image
-> fromFile ( ' image.jpg ' ) // load image . jpg
-> autoOrient () // adjust orientation based on exif data
-> resize ( 320 , 200 ) // resize to 320 x200 pixels
-> flip ( ' x ' ) // flip horizontally
-> colorize ( ' DarkBlue ' ) // tint dark blue
-> border ( ' black ' , 10 ) // add a 10 pixel black border
-> overlay ( ' watermark.png ' , ' bottom right ' ) // add a watermark image
-> toFile ( ' new-image.png ' , ' image/png ' ) // convert to PNG and save a copy to new-image . png
-> toScreen (); // output to the screen
// And much more !
} catch ( Exception $ err ) {
// Handle errors
echo $ err -> getMessage ();
}LightBlue ) สีฐานสิบหก หรืออาร์เรย์ RGB(A)ติดตั้งด้วยนักแต่งเพลง:
composer require claviska/simpleimage
หรือรวมไลบรารีด้วยตนเอง:
<?php
require ' src/claviska/SimpleImage.php ' ;SimpleImage ได้รับการพัฒนาและดูแลโดย Cory LaViska ลิขสิทธิ์ A Beautiful Site, LLC.
หากคุณสนุกกับการใช้ SimpleImage โดยเฉพาะอย่างยิ่งในแอปพลิเคชันเชิงพาณิชย์ โปรดพิจารณาสนับสนุนฉันเพื่อสนับสนุนการพัฒนา
ขอบคุณ!
ได้รับอนุญาตภายใต้ใบอนุญาต MIT
ลำดับความเจ๋ง:
เคล็ดลับ API:
fromFile หรือ fromDataUri$image::methodName() หรือ claviskaSimpleImage::methodName()white ) สตริงฐานสิบหก (เช่น '#ffffff') หรืออาร์เรย์ RGBAnormalizeColor เมื่อคุณส่งสี CSS หรือสตริงฐานสิบหก: white|0.25fromDataUri($uri)โหลดรูปภาพจาก URI ข้อมูล
$uri * (สตริง) - URI ข้อมูลส่งกลับวัตถุ SimpleImage
fromFile($file)โหลดรูปภาพจากไฟล์
$file * (string) - ไฟล์รูปภาพที่จะโหลดส่งกลับวัตถุ SimpleImage
fromNew($width, $height, $color)สร้างภาพใหม่
$width * (int) - ความกว้างของรูปภาพ$height * (int) - ความสูงของรูปภาพ$color (string|array) - สีเติมเสริมสำหรับรูปภาพใหม่ (ค่าเริ่มต้น 'โปร่งใส')ส่งกลับวัตถุ SimpleImage
fromString($string)สร้างภาพใหม่จากสตริง
$string * (string) - ข้อมูลรูปภาพดิบเป็นสตริง ตัวอย่าง: $string = file_get_contents('image.jpg');
ส่งกลับวัตถุ SimpleImage
toDataUri($mimeType, $options)สร้าง URI ข้อมูล
$mimeType (string) - รูปแบบรูปภาพที่จะส่งออกเป็นประเภท mime (ค่าเริ่มต้นเป็นประเภท mime ดั้งเดิม)$options (array|int) - อาร์เรย์ของตัวเลือกหรือคุณภาพของภาพเป็นเปอร์เซ็นต์ (ค่าเริ่มต้น 100)ส่งกลับสตริงที่มีข้อมูล URI
toDownload($filename, $mimeType, $options)บังคับให้ดาวน์โหลดอิมเมจไปยังเครื่องไคลเอ็นต์ จะต้องถูกเรียกก่อนที่จะส่งเอาต์พุตใด ๆ ไปที่หน้าจอ
$filename * (string) - ชื่อไฟล์ (ไม่มีพาธ) ที่จะส่งไปยังไคลเอนต์ (เช่น 'image.jpeg')$mimeType (string) - รูปแบบรูปภาพที่จะส่งออกเป็นประเภท mime (ค่าเริ่มต้นเป็นประเภท mime ดั้งเดิม)$options (array|int) - อาร์เรย์ของตัวเลือกหรือคุณภาพของภาพเป็นเปอร์เซ็นต์ (ค่าเริ่มต้น 100)ส่งกลับวัตถุ SimpleImage
toFile($file, $mimeType, $options)เขียนภาพลงในไฟล์
$mimeType (string) - รูปแบบรูปภาพที่จะส่งออกเป็นประเภท mime (ค่าเริ่มต้นเป็นประเภท mime ดั้งเดิม)$options (array|int) - อาร์เรย์ของตัวเลือกหรือคุณภาพของภาพเป็นเปอร์เซ็นต์ (ค่าเริ่มต้น 100)ส่งกลับวัตถุ SimpleImage
toScreen($mimeType, $options)ส่งออกภาพไปยังหน้าจอ จะต้องถูกเรียกก่อนที่จะส่งเอาต์พุตใด ๆ ไปที่หน้าจอ
$mimeType (string) - รูปแบบรูปภาพที่จะส่งออกเป็นประเภท mime (ค่าเริ่มต้นเป็นประเภท mime ดั้งเดิม)$options (array|int) - อาร์เรย์ของตัวเลือกหรือคุณภาพของภาพเป็นเปอร์เซ็นต์ (ค่าเริ่มต้น 100)ส่งกลับวัตถุ SimpleImage
toString($mimeType, $options)สร้างสตริงรูปภาพ
$mimeType (string) - รูปแบบรูปภาพที่จะส่งออกเป็นประเภท mime (ค่าเริ่มต้นเป็นประเภท mime ดั้งเดิม)$options (array|int) - อาร์เรย์ของตัวเลือกหรือคุณภาพของภาพเป็นเปอร์เซ็นต์ (ค่าเริ่มต้น 100)ส่งกลับวัตถุ SimpleImage
generate($mimeType, $options)สร้างภาพ
$mimeType (string) - รูปแบบรูปภาพที่จะส่งออกเป็นประเภท mime (ค่าเริ่มต้นเป็นประเภท mime ดั้งเดิม)$options (array|int) - อาร์เรย์ของตัวเลือกหรือคุณภาพของภาพเป็นเปอร์เซ็นต์ (ค่าเริ่มต้น 100)ส่งกลับอาร์เรย์: [mimeType, ข้อมูล]
แทนที่จะให้คุณภาพเป็นจำนวนเต็มเป็นพารามิเตอร์ฟังก์ชันสุดท้าย คุณยังสามารถตั้งค่าตัวเลือกต่างๆ ขึ้นอยู่กับประเภท Mime ที่เป็นเป้าหมายโดยใช้อาร์เรย์ที่เชื่อมโยง
$ image -> toFile ( $ file , ' image/avif ' , [
// JPG , WEBP , AVIF ( default 100 )
' quality ' => 100 ,
// AVIF ( default - 1 which is 6 )
// range of slow and small file 0 to 10 fast but big file
' speed ' => - 1 ,
]); $ image -> toFile ( $ file , ' image/bmp ' , [
// BMP : boolean ( default true )
' compression ' => true ,
// BMP , JPG ( default null , keep the same )
' interlace ' => null ,
]); $ image -> toFile ( $ file , ' image/gif ' , [
// GIF , PNG ( default true )
' alpha ' => true ,
]); $ image -> toFile ( $ file , ' image/jpeg ' , [
// BMP , JPG ( default null , keep the same )
' interlace ' => null ,
// JPG , WEBP , AVIF ( default 100 )
' quality ' => 100 ,
]); $ image -> toFile ( $ file , ' image/png ' , [
// GIF , PNG ( default true )
' alpha ' => true ,
// PNG : 0 - 10 , defaults to zlib ( default 6 )
' compression ' => - 1 ,
// PNG ( default - 1 )
' filters ' => - 1 ,
// has no effect on PNG images , since the format is lossless
// ' quality' = > 100 ,
]); $ image -> toFile ( $ file , ' image/webp ' , [
// JPG , WEBP , AVIF ( default 100 )
' quality ' => 100 ,
]);getAspectRatio()รับอัตราส่วนภาพปัจจุบันของรูปภาพ
ส่งกลับอัตราส่วนกว้างยาวเป็นแบบทศนิยม
getExif()รับข้อมูล EXIF ของรูปภาพ
ส่งกลับอาร์เรย์ของข้อมูล exif หรือค่าว่างหากไม่มีข้อมูล
getHeight()รับความสูงปัจจุบันของรูปภาพ
ส่งกลับความสูงเป็นจำนวนเต็ม
getMimeType()รับประเภท mime ของรูปภาพที่โหลด
ส่งกลับสตริงประเภท mime
getOrientation()รับการวางแนวปัจจุบันของรูปภาพ
ส่งกลับสตริง: 'แนวนอน', 'แนวตั้ง' หรือ 'สี่เหลี่ยมจัตุรัส'
getResolution()รับความละเอียดปัจจุบันของรูปภาพในหน่วย DPI
ส่งกลับอาร์เรย์ของจำนวนเต็ม: [0 => 96, 1 => 96]
getWidth()รับความกว้างปัจจุบันของรูปภาพ
ส่งกลับความกว้างเป็นจำนวนเต็ม
hasImage()ตรวจสอบว่าวัตถุ SimpleImage ได้โหลดรูปภาพหรือไม่
ส่งกลับค่าบูลีน
reset()ทำลายทรัพยากรรูปภาพ
ส่งกลับวัตถุ SimpleImage
autoOrient()หมุนรูปภาพเพื่อให้การวางแนวถูกต้องตามข้อมูล exif การเรียกวิธีนี้กับรูปภาพที่ไม่มีข้อมูล Exif ได้อย่างปลอดภัย (จะไม่มีการเปลี่ยนแปลง) ส่งกลับวัตถุ SimpleImage
bestFit($maxWidth, $maxHeight)ปรับขนาดรูปภาพตามสัดส่วนเพื่อให้พอดีกับความกว้างและความสูงที่กำหนด
$maxWidth * (int) - ความกว้างสูงสุดที่รูปภาพสามารถมีได้$maxHeight * (int) - ความสูงสูงสุดที่รูปภาพสามารถมีได้ส่งกลับวัตถุ SimpleImage
crop($x1, $y1, $x2, $y2)ครอบตัดรูปภาพ
ส่งกลับวัตถุ SimpleImage
fitToHeight($height) (เลิกใช้แล้ว)ปรับขนาดรูปภาพตามสัดส่วนให้มีความสูงเฉพาะ
วิธีการนี้เลิกใช้แล้วในเวอร์ชัน 3.2.2 และจะถูกลบออกในเวอร์ชัน 4.0 โปรดใช้ resize(null, $height) แทน
$height * (int) - ความสูงที่ต้องการปรับขนาดรูปภาพส่งกลับวัตถุ SimpleImage
fitToWidth($width) (เลิกใช้แล้ว)ปรับขนาดรูปภาพตามสัดส่วนให้มีความกว้างเฉพาะ
วิธีการนี้เลิกใช้แล้วในเวอร์ชัน 3.2.2 และจะถูกลบออกในเวอร์ชัน 4.0 โปรดใช้ resize($width, null) แทน
$width * (int) - ความกว้างที่ต้องการปรับขนาดรูปภาพส่งกลับวัตถุ SimpleImage
flip($direction)พลิกภาพในแนวนอนหรือแนวตั้ง
$direction * (string) - ทิศทางที่จะพลิก: x|y|bothส่งกลับวัตถุ SimpleImage
maxColors($max, $dither)ลดขนาดรูปภาพให้เป็นจำนวนสีสูงสุด
$max * (int) - จำนวนสีสูงสุดที่ใช้$dither (bool) - จะใช้เอฟเฟกต์ dithering หรือไม่ (ค่าเริ่มต้นเป็นจริง)ส่งกลับวัตถุ SimpleImage
overlay($overlay, $anchor, $opacity, $xOffset, $yOffset)วางรูปภาพไว้ด้านบนของรูปภาพปัจจุบัน
$overlay * (string|SimpleImage) - รูปภาพที่จะวางซ้อน ซึ่งอาจเป็นชื่อไฟล์ URI ข้อมูล หรือวัตถุ SimpleImage$anchor (string) - จุดยึด: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' ( ค่าเริ่มต้น 'ศูนย์กลาง')$opacity (float) - ระดับความทึบของการซ้อนทับ 0-1 (ค่าเริ่มต้น 1)$xOffset (int) - ออฟเซ็ตแนวนอนเป็นพิกเซล (ค่าเริ่มต้น 0)$yOffset (int) - ออฟเซ็ตแนวตั้งเป็นพิกเซล (ค่าเริ่มต้น 0)$calculateOffsetFromEdge (บูล) - คำนวณออฟเซ็ตโดยอ้างอิงถึงขอบของรูปภาพ $xOffset และ $yOffset ไม่มีผลกับจุดยึดตรงกลาง (ค่าเริ่มต้นเป็นเท็จ)ส่งกลับวัตถุ SimpleImage
resize($width, $height)ปรับขนาดรูปภาพเป็นขนาดที่ระบุ หากระบุเพียงมิติเดียว รูปภาพจะถูกปรับขนาดตามสัดส่วน
$width * (int) - ความกว้างของรูปภาพใหม่$height * (int) - ความสูงของรูปภาพใหม่ส่งกลับวัตถุ SimpleImage
resolution($res_x, $res_y)เปลี่ยนความละเอียด (DPI) ของรูปภาพ
$res_x * (int) - ความละเอียดแนวนอน มีหน่วยเป็น DPI$res_y (int) - ความละเอียดแนวตั้ง มีหน่วยเป็น DPIส่งกลับวัตถุ SimpleImage
rotate($angle, $backgroundColor)หมุนภาพ
$angle * (int) - มุมการหมุน (-360 - 360)$backgroundColor (สตริง|อาร์เรย์) - สีพื้นหลังที่จะใช้สำหรับพื้นที่โซนที่ไม่ครอบคลุมหลังการหมุน (ค่าเริ่มต้น 'โปร่งใส')ส่งกลับวัตถุ SimpleImage
text($text, $options, &$boundary)เพิ่มข้อความให้กับรูปภาพ
$text* (string) - ข้อความที่ต้องการ$options (array) - อาร์เรย์ของตัวเลือกfontFile * (string) - ไฟล์ฟอนต์ TrueType (หรือเข้ากันได้) ที่จะใช้size (int) - ขนาดของแบบอักษรเป็นพิกเซล (ค่าเริ่มต้น 12)color (สตริง|อาร์เรย์) - สีข้อความ (สีดำเริ่มต้น)anchor (สตริง) - จุดยึด: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' (ค่าเริ่มต้น 'ศูนย์').xOffset (int) - ออฟเซ็ตแนวนอนเป็นพิกเซล (ค่าเริ่มต้น 0)yOffset (int) - ออฟเซ็ตแนวตั้งเป็นพิกเซล (ค่าเริ่มต้น 0)shadow (อาร์เรย์) - พารามิเตอร์เงาข้อความx * (int) - ออฟเซ็ตแนวนอนเป็นพิกเซลy * (int) - ออฟเซ็ตแนวตั้งเป็นพิกเซลcolor * (string|array) - สีเงาของข้อความcalculateOffsetFromEdge (บูล) - คำนวณออฟเซ็ตที่อ้างอิงถึงขอบของภาพ (ค่าเริ่มต้นเป็นเท็จ)baselineAlign (bool) - จัดแนวแบบอักษรข้อความให้ตรงกับเส้นฐาน (ค่าเริ่มต้นเป็นจริง)$boundary (อาร์เรย์) - หากผ่าน ตัวแปรนี้จะมีอาร์เรย์ที่มีพิกัดล้อมรอบข้อความ: [x1, y1, x2, y2, width, height] สามารถใช้คำนวณตำแหน่งของข้อความหลังจากเพิ่มลงในรูปภาพแล้วส่งกลับวัตถุ SimpleImage
thumbnail($width, $height, $anchor)สร้างภาพขนาดย่อ ฟังก์ชันนี้จะพยายามทำให้รูปภาพใกล้เคียงกับขนาดที่ให้ไว้มากที่สุด จากนั้นครอบตัดส่วนที่เหลือเพื่อบังคับขนาดที่ต้องการ มีประโยชน์สำหรับการสร้างภาพขนาดย่อ
$width * (int) - ความกว้างของภาพขนาดย่อ$height * (int) - ความสูงของรูปขนาดย่อ$anchor (string) - จุดยึด: 'center', 'top', 'bottom', 'left', 'right', 'top left', 'top right', 'bottom left', 'bottom right' ( ค่าเริ่มต้น 'ศูนย์กลาง')ส่งกลับวัตถุ SimpleImage
arc($x, $y, $width, $height, $start, $end, $color, $thickness)วาดส่วนโค้ง
$x * (int) - พิกัด x ของจุดศูนย์กลางส่วนโค้ง$y * (int) - พิกัด y ของจุดศูนย์กลางส่วนโค้ง$width * (int) - ความกว้างของส่วนโค้ง$height * (int) - ความสูงของส่วนโค้ง$start * (int) - จุดเริ่มต้นของส่วนโค้งเป็นองศา$end * (int) - จุดสิ้นสุดของส่วนโค้งเป็นองศา$color * (string|array) - สีส่วนโค้ง$thickness (int|string) - ความหนาของเส้นเป็นพิกเซลหรือ 'เต็ม' (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
border($color, $thickness)วาดเส้นขอบรอบๆ รูปภาพ
$color * (string|array) - สีเส้นขอบ$thickness (int) - ความหนาของเส้นขอบ (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
dot($x, $y, $color)วาดจุดพิกเซลจุดเดียว
$x * (int) - พิกัด x ของจุด$y * (int) - พิกัด y ของจุด$color * (string|array) - สีจุดส่งกลับวัตถุ SimpleImage
ellipse($x, $y, $width, $height, $color, $thickness)วาดวงรี
$x * (int) - พิกัด x ของจุดศูนย์กลาง$y * (int) - พิกัด y ของศูนย์กลาง$width * (int) - ความกว้างวงรี$height * (int) - ความสูงของวงรี$color * (string|array) - สีวงรี$thickness (int|string) - ความหนาของเส้นเป็นพิกเซลหรือ 'เต็ม' (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
fill($color)เติมภาพด้วยสีทึบ
$color (string|array) - สีเติมส่งกลับวัตถุ SimpleImage
line($x1, $y1, $x2, $y2, $color, $thickness)วาดเส้น
$x1 * (int) - พิกัด x สำหรับจุดแรก$y1 * (int) - พิกัด y สำหรับจุดแรก$x2 * (int) - พิกัด x สำหรับจุดที่สอง$y2 * (int) - พิกัด y สำหรับจุดที่สอง$color (string|array) - สีของเส้น$thickness (int) - ความหนาของเส้น (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
polygon($vertices, $color, $thickness)วาดรูปหลายเหลี่ยม
$vertices * (array) - จุดยอดของรูปหลายเหลี่ยมในอาร์เรย์ของอาร์เรย์ x/y ตัวอย่าง: [
['x' => x1, 'y' => y1],
['x' => x2, 'y' => y2],
['x' => xN, 'y' => yN]
]
$color * (string|array) - สีรูปหลายเหลี่ยม$thickness (int|string) - ความหนาของเส้นเป็นพิกเซลหรือ 'เต็ม' (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
rectangle($x1, $y1, $x2, $y2, $color, $thickness)วาดรูปสี่เหลี่ยมผืนผ้า
$x1 * (int) - พิกัด x ด้านซ้ายบน$y1 * (int) - พิกัด y บนซ้าย$x2 * (int) - พิกัด x มุมขวาล่าง$y2 * (int) - พิกัด y มุมขวาล่าง$color * (string|array) - สีสี่เหลี่ยม$thickness (int|string) - ความหนาของเส้นเป็นพิกเซลหรือ 'เต็ม' (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
roundedRectangle($x1, $y1, $x2, $y2, $radius, $color, $thickness)วาดรูปสี่เหลี่ยมมุมมน
$x1 * (int) - พิกัด x ด้านซ้ายบน$y1 * (int) - พิกัด y บนซ้าย$x2 * (int) - พิกัด x มุมขวาล่าง$y2 * (int) - พิกัด y มุมขวาล่าง$radius * (int) - รัศมีเส้นขอบเป็นพิกเซล$color * (string|array) - สีสี่เหลี่ยม$thickness (int|string) - ความหนาของเส้นเป็นพิกเซลหรือ 'เต็ม' (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
blur($type, $passes)ใช้ตัวกรองภาพเบลอ
$type (string) - อัลกอริธึมเบลอที่จะใช้: 'selective', 'gaussian' (ค่าเริ่มต้น 'gaussian')$passes (int) - จำนวนเวลาในการใช้ตัวกรองเพื่อเพิ่มเอฟเฟกต์ (ค่าเริ่มต้น 1)ส่งกลับวัตถุ SimpleImage
brighten($percentage)ใช้ฟิลเตอร์ความสว่างเพื่อทำให้ภาพสว่างขึ้น
$percentage * (int) - เปอร์เซ็นต์เพื่อทำให้ภาพสว่างขึ้น (0 - 100)ส่งกลับวัตถุ SimpleImage
colorize($color)ใช้ฟิลเตอร์ปรับสี
$color * (string|array) - สีของตัวกรองส่งกลับวัตถุ SimpleImage
contrast($percentage)ใช้ฟิลเตอร์คอนทราสต์
$percentage * (int) - เปอร์เซ็นต์ที่จะปรับ (-100 - 100)ส่งกลับวัตถุ SimpleImage
darken($percentage)ใช้ฟิลเตอร์ความสว่างเพื่อทำให้ภาพมืดลง
$percentage * (int) - เปอร์เซ็นต์ที่จะทำให้ภาพมืดลง (0 - 100)ส่งกลับวัตถุ SimpleImage
desaturate()ใช้ฟิลเตอร์ลดความอิ่มตัว (ระดับสีเทา)
ส่งกลับวัตถุ SimpleImage
duotone($lightColor, $darkColor)ใช้ฟิลเตอร์ดูโอโทนกับรูปภาพ
$lightColor * (string|array) - สีที่อ่อนที่สุดในดูโอโทน$darkColor * (string|array) - สีที่มืดที่สุดในดูโอโทนส่งกลับวัตถุ SimpleImage
edgeDetect()ใช้ตัวกรองการตรวจจับขอบ
ส่งกลับวัตถุ SimpleImage
emboss()ใช้ตัวกรองลายนูน
ส่งกลับวัตถุ SimpleImage
invert()กลับสีของภาพ
ส่งกลับวัตถุ SimpleImage
opacity()เปลี่ยนระดับความทึบของรูปภาพ
$opacity * (float) - ระดับความทึบที่ต้องการ (0 - 1)ส่งกลับวัตถุ SimpleImage
pixelate($size)ใช้ตัวกรองพิกเซล
$size (int) - ขนาดของบล็อกเป็นพิกเซล (ค่าเริ่มต้น 10)ส่งกลับวัตถุ SimpleImage
sepia()จำลองเอฟเฟ็กต์ซีเปียโดยการลดความอิ่มตัวของภาพและใช้โทนสีซีเปีย
ส่งกลับวัตถุ SimpleImage
sharpen($amount)ทำให้ภาพคมชัดขึ้น
$amount (int) - จำนวนเงินที่คมชัด (1 - 100, ค่าเริ่มต้น 50)ส่งกลับวัตถุ SimpleImage
sketch()ใช้ฟิลเตอร์ลบค่าเฉลี่ยเพื่อสร้างเอฟเฟ็กต์ภาพร่าง
ส่งกลับวัตถุ SimpleImage
(static) adjustColor($color, $red, $green, $blue, $alpha)ปรับสีโดยเพิ่ม/ลดค่าสีแดง/เขียว/น้ำเงิน/อัลฟาอย่างอิสระ
$color * (string|array) - สีที่ต้องการปรับ$red * (int) - การปรับสีแดง (-255 - 255)$green * (int) - การปรับสีเขียว (-255 - 255)$blue * (int) - การปรับสีน้ำเงิน (-255 - 255)$alpha * (ลอย) - การปรับอัลฟ่า (-1 - 1)ส่งกลับอาร์เรย์สี RGBA
(static) darkenColor($color, $amount)ทำให้สีเข้มขึ้น
$color * (string|array) - สีที่ต้องการเข้มขึ้น$amount * (int) - จำนวนที่จะเข้มขึ้น (0 - 255)ส่งกลับอาร์เรย์สี RGBA
extractColors($count = 10, $backgroundColor = null)แยกสีออกจากรูปภาพเหมือนกับที่มนุษย์ทำ™ วิธีการนี้ต้องใช้ไลบรารีของบุคคลที่สาม LeagueColorExtractor หากคุณใช้ Composer ระบบจะติดตั้งให้คุณโดยอัตโนมัติ
$count (int) - จำนวนสีสูงสุดที่จะแยก (ค่าเริ่มต้น 5)$backgroundColor (สตริง|อาร์เรย์) - ตามค่าเริ่มต้นพิกเซลใด ๆ ที่มีค่าอัลฟ่ามากกว่าศูนย์จะถูกละทิ้ง เนื่องจากสีโปร่งใสจะไม่ถูกรับรู้อย่างที่เคยเป็น ตัวอย่างเช่น สีดำโปร่งใสทั้งหมดจะเห็นเป็นสีขาวบนพื้นหลังสีขาว ดังนั้นหากคุณต้องการคำนึงถึงความโปร่งใส คุณจะต้องระบุสีพื้นหลังเริ่มต้นส่งกลับอาร์เรย์ของอาร์เรย์สี RGBA
getColorAt($x, $y)รับค่า RGBA ของพิกเซลเดียว
$x * (int) - ตำแหน่งแนวนอนของพิกเซล$y * (int) - ตำแหน่งแนวตั้งของพิกเซลส่งกลับอาร์เรย์สี RGBA หรือเท็จ หากตำแหน่ง x/y อยู่นอกแคนวาส
(static) lightenColor($color, $amount)ทำให้สีสว่างขึ้น
$color * (string|array) - สีที่ต้องการทำให้จางลง$amount * (int) - จำนวนที่จะเข้มขึ้น (0 - 255)ส่งกลับอาร์เรย์สี RGBA
(static) normalizeColor($color)ปรับค่าสีฐานสิบหกหรืออาเรย์ให้เป็นมาตรฐานให้เป็นอาเรย์ RGBA ที่มีรูปแบบเหมาะสม
$color * (string|array) - ชื่อสี CSS, สตริงเลขฐานสิบหก หรืออาร์เรย์ [แดง เขียว น้ำเงิน อัลฟา]คุณสามารถไพพ์ความโปร่งใสของอัลฟ่าผ่านสตริงเลขฐานสิบหกและชื่อสีได้ ตัวอย่างเช่น:
#fff|0.50 <-- 50% สีขาวแดง|0.25 <-- 25% สีแดง
ส่งกลับอาร์เรย์: [red, green, blue, alpha]
SimpleImage จะส่งข้อยกเว้นมาตรฐานเมื่อมีสิ่งผิดปกติเกิดขึ้น คุณควรใช้บล็อก try/catch รอบโค้ดของคุณเพื่อจัดการอย่างเหมาะสม
<?php
try {
$ image = new claviska SimpleImage( ' image.jpeg ' )
// ...
} catch ( Exception $ err ) {
echo $ err -> getMessage ();
} หากต้องการตรวจสอบข้อผิดพลาดเฉพาะ ให้เปรียบเทียบ $err->getCode() กับค่าคงที่ข้อผิดพลาดที่กำหนดไว้
<?php
try {
$ image = new claviska SimpleImage( ' image.jpeg ' )
// ...
} catch ( Exception $ err ) {
if ( $ err -> getCode () === $ image :: ERR_FILE_NOT_FOUND ) {
echo ' File not found! ' ;
} else {
echo $ err -> getMessage ();
}
}ตามแนวทางปฏิบัติที่ดีที่สุด ให้ใช้ค่าคงที่ที่กำหนดไว้แทนค่าจำนวนเต็มเสมอ ค่ามีแนวโน้มที่จะเปลี่ยนแปลงในเวอร์ชันต่อๆ ไป และจะไม่ถือเป็นการเปลี่ยนแปลงที่ทำให้เกิดการเปลี่ยนแปลง
ERR_FILE_NOT_FOUND - ไม่พบไฟล์ที่ระบุหรือโหลดไม่ได้ด้วยเหตุผลบางประการERR_FONT_FILE - ไม่สามารถโหลดไฟล์ฟอนต์ที่ระบุได้ERR_FREETYPE_NOT_ENABLED - ไม่ได้เปิดใช้งานการสนับสนุน Freetype ใน PHP เวอร์ชันของคุณERR_GD_NOT_ENABLED - ส่วนขยาย GD ไม่ได้เปิดใช้งานใน PHP เวอร์ชันของคุณERR_LIB_NOT_LOADED - ยังไม่ได้โหลดไลบรารีที่จำเป็นERR_INVALID_COLOR - ค่าสีที่ไม่ถูกต้องถูกส่งผ่านเป็นอาร์กิวเมนต์ERR_INVALID_DATA_URI - URI ข้อมูลที่ระบุไม่ถูกต้องERR_INVALID_IMAGE - รูปภาพที่ระบุไม่ถูกต้องERR_UNSUPPORTED_FORMAT - รูปแบบรูปภาพที่ระบุไม่ถูกต้องERR_WEBP_NOT_ENABLED - ไม่ได้เปิดใช้งานการสนับสนุน WEBP ใน PHP เวอร์ชันของคุณERR_WRITE - ไม่สามารถเขียนไปยังระบบไฟล์ได้ERR_INVALID_FLAG - ไม่มีคีย์แฟล็กที่ระบุ อาร์กิวเมนต์สีอาจเป็นชื่อสี CSS (เช่น LightBlue ) สตริงสีฐานสิบหก (เช่น #0099dd ) หรืออาร์เรย์ RGB(A) (เช่น ['red' => 255, 'green' => 0, 'blue' => 0, 'alpha' => 1] )
เมื่อ $thickness > 1 GD จะลากเส้นที่มีความหนาที่ต้องการจากจุดกำเนิดศูนย์กลาง ตัวอย่างเช่น สี่เหลี่ยมที่วาดที่ [10, 10, 20, 20] ที่มีความหนา 3 จริงๆ แล้วจะถูกวาดที่ [9, 9, 21, 21] นี่เป็นเรื่องจริงสำหรับทุกรูปร่าง และไม่ใช่จุดบกพร่องในไลบรารี SimpleImage
ปรับแต่งลักษณะการทำงานของอินสแตนซ์ SimpleImage โดยการตั้งค่าแฟล็กอินสแตนซ์ด้วยเมธอด setFlag($key, $value)
$ image = new claviska SimpleImage ( ' image.jpeg ' )-> setFlag ( " foo " , " bar " );คุณยังสามารถส่งผ่านอาร์เรย์ที่เชื่อมโยงไปยังตัวสร้าง SimpleImage เพื่อตั้งค่าแฟล็กอินสแตนซ์ได้
$ image = new claviska SimpleImage ( ' image.jpeg ' , [ ' foo ' => ' bar ' ]);
// . . or without an $ image
$ image = new claviska SimpleImage (flags: [ ' foo ' => ' bar ' ]); หมายเหตุ: setFlag() จะส่ง ERR_INVALID_FLAG ข้อยกเว้นหากไม่มีคีย์ (ไม่มีค่าเริ่มต้น)
sslVerify การตั้งค่า sslVerify เป็น false (ค่าเริ่มต้นเป็น true ) จะทำให้รูปภาพทั้งหมดที่โหลดผ่าน HTTPS ละทิ้งการตรวจสอบความถูกต้องของใบรับรองเพียร์ สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับใบรับรองที่ลงนามด้วยตนเอง
$ image = new claviska SimpleImage ( ' https://localhost/image.jpeg ' , [ ' sslVerify ' => false ]);
// Would normally throw an OpenSSL exception , but is ignored with the sslVerify flag set to false . textfromString() เพื่อโหลดรูปภาพจากสตริงtoString() เพื่อสร้างสตริงรูปภาพarc สำหรับการวาดส่วนโค้งborder สำหรับการวาดเส้นขอบdot สำหรับการวาดแต่ละพิกเซลellipse สำหรับการวาดวงรีและวงกลมline การวาดเส้นpolygon สำหรับการวาดรูปหลายเหลี่ยมrectangle สำหรับการวาดรูปสี่เหลี่ยมroundedRectangle สำหรับการวาดรูปสี่เหลี่ยมผืนผ้าโค้งมนadjustColor สำหรับการปรับเปลี่ยนช่องสี RGBA เพื่อสร้างรูปแบบสีที่สัมพันธ์กันdarkenColor เพื่อทำให้สีเข้มขึ้นextractColors เพื่อให้ได้สีที่พบบ่อยที่สุดจากรูปภาพgetColorAt เพื่อรับค่า RGBA ของพิกเซลเฉพาะlightenColor เพื่อทำให้สีสว่างขึ้นtoDownload เพื่อบังคับให้ดาวน์โหลดรูปภาพบนเครื่องไคลเอนต์duotone เพื่อสร้างภาพดูโอโทนsharpen เพื่อทำให้ภาพคมชัดขึ้นabeautifulsite เป็น claviskacreate เป็น fromNewload เป็น fromFileload_base64 เป็น fromDataUrioutput เป็น toScreen .xoutput_base64 เป็น toDataUrisave เป็น toFiletext เพื่อยอมรับอาร์เรย์ของตัวเลือกแทนข้อโต้แย้งมากมายtext เนื่องจากให้ผลลัพธ์ที่สกปรกและไม่สนับสนุนความโปร่งใสsmooth ออกเนื่องจากข้อโต้แย้งในคู่มือ PHP ไม่ได้รับการบันทึกไว้อย่างดีadaptive_resize (ใช้ thumbnail แทน)get_meta_data (ใช้ getExif , getHeight , getMime , getOrientation และ getWidth แทน)