คลาส 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.25
fromDataUri($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 .
text
fromString()
เพื่อโหลดรูปภาพจากสตริงtoString()
เพื่อสร้างสตริงรูปภาพarc
สำหรับการวาดส่วนโค้งborder
สำหรับการวาดเส้นขอบdot
สำหรับการวาดแต่ละพิกเซลellipse
สำหรับการวาดวงรีและวงกลมline
การวาดเส้นpolygon
สำหรับการวาดรูปหลายเหลี่ยมrectangle
สำหรับการวาดรูปสี่เหลี่ยมroundedRectangle
สำหรับการวาดรูปสี่เหลี่ยมผืนผ้าโค้งมนadjustColor
สำหรับการปรับเปลี่ยนช่องสี RGBA เพื่อสร้างรูปแบบสีที่สัมพันธ์กันdarkenColor
เพื่อทำให้สีเข้มขึ้นextractColors
เพื่อให้ได้สีที่พบบ่อยที่สุดจากรูปภาพgetColorAt
เพื่อรับค่า RGBA ของพิกเซลเฉพาะlightenColor
เพื่อทำให้สีสว่างขึ้นtoDownload
เพื่อบังคับให้ดาวน์โหลดรูปภาพบนเครื่องไคลเอนต์duotone
เพื่อสร้างภาพดูโอโทนsharpen
เพื่อทำให้ภาพคมชัดขึ้นabeautifulsite
เป็น claviska
create
เป็น fromNew
load
เป็น fromFile
load_base64
เป็น fromDataUri
output
เป็น toScreen
.xoutput_base64
เป็น toDataUri
save
เป็น toFile
text
เพื่อยอมรับอาร์เรย์ของตัวเลือกแทนข้อโต้แย้งมากมายtext
เนื่องจากให้ผลลัพธ์ที่สกปรกและไม่สนับสนุนความโปร่งใสsmooth
ออกเนื่องจากข้อโต้แย้งในคู่มือ PHP ไม่ได้รับการบันทึกไว้อย่างดีadaptive_resize
(ใช้ thumbnail
แทน)get_meta_data
(ใช้ getExif
, getHeight
, getMime
, getOrientation
และ getWidth
แทน)