วิธีใช้ PHP ย่อรูปด้วย Imagemagick

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
eange08
PHP Super Hero Member
PHP Super Hero Member
Posts: 652
Joined: 22/12/2020 10:09 am

วิธีใช้ PHP ย่อรูปด้วย Imagemagick

Post by eange08 »

บทความนี้จะแนะนำการย่อภาพด้วยไลบาลี่ของ PHP Imagemagick เป็นไลบาลี่ที่น่าสนใจอีกตัวหนึ่ง ที่ไว้ใช้จัดการรูปภาพได้ในหลายรูปแบบ ตามต้องการเช่น ย่อภาพ, ขยายภาพ, แปลงภาพ เป็นต้น ซึ่งอ่านเพิ่มเติมเกี่ยวกับ Imagemagick

ขั้นตอน 1 ติดตั้ง PHP Imagemagick ก่อน ดูวิธีติดตั้งได้ที่นี้
สำหรับ Ubuntu
สำหรับ Window

ขั้นตอนที่ 2 สร้างไฟล์ 2 ไฟล์ด้วยกันคือ
  • ไฟล์ที่เราดูผลบนหน้าจอ (เป็นไฟล์ .html หรือ .php ก็ได้) ชื่อ mindphp_view.html
ตัวอย่าง

Code: Select all

<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<table width="100%">
	<tr>
		<td>
		รูปขนาดจริง<br>
		<img src="cat-world.jpg" width="40%">
		</td>	
	</tr>
	<tr>
		<td>
		รูปย่อด้วย Imagemagick ขนาด 480x250<br>
		<img src="get_image.php" ><!--เรียกไฟล์ในข้อ 2 ที่ย่อภาพด้วย Imagemagick-->
		</td>
	</tr>	
</table>
</body>
</html>
  • ไฟล์ที่เราใช้แปลงไฟล์ด้วยไลบาลี่ของ PHP Imagemagick (เป็นไฟล์ .php) ชื่อ get_image.php
ตัวอย่าง

Code: Select all

<?php
header('Content-type: image/jpge');  //----ใส่ตามประเภทรูปภาพที่เราจะใช้เช่น jpge, png, gif
$image = new Imagick('cat-world.jpg'); //---ใส่ชื่อรูปที่เราต้องการจะย่อภาพ

$image->adaptiveResizeImage(450,250);  //---ใช้คำสั่งย่อรูปภาพกำหนดแบบ กว้าง, ยาว
echo $image;  //----echo เพื่อแสดงรูปภาพบนหน้าจอ
?>
ผลลัพท์ :
screenshot-localhost-2020.12.26-17_26_57.png
อธิบายรูปแบบการใช้ฟังกชั่น adaptiveResizeImage นั้นจะมีพารามิเตอร์ดังนี้

Code: Select all

Imagick::adaptiveResizeImage ( $columns, $rows, $bestfit )
  • $columns = ระบุเป็นตัวเลข (int) เอาไว้กำหนดความกว้างของรูปภาพ
  • $rows = ระบุเป็นตัวเลข (int) เอาไว้กำหนดความยาวของรูปภาพ
  • $bestfit = ระบุเป็นค่า bool [viewtopic.php?f=17&t=49560] จะปรับขนาดที่เหมาะสมให้อยู่ในกรอบที่เรากำหนดไว้
ส่วนของพารามิเตอร์ที่เป็น bestfit เปลี่ยนไปใน Imagick 3.0.0 ก่อนที่เวอร์ชันนี้จะมีขนาด 400x400 ภาพ ขนาด 200x150 จะถูกทิ้งไว้โดยไม่มีใครแตะต้อง ใน Imagick 3.0.0 ขึ้นไปรูปภาพจะถูกปรับขนาดเป็นขนาด 400x300 เนื่องจากเป็น "ขนาดที่เหมาะสมที่สุด" สำหรับขนาดที่กำหนด หากใช้พารามิเตอร์ bestfit ต้องให้ทั้งความกว้างและความสูง

อ้างอิง :
  • Similar Topics
    Replies
    Views
    Last post

Return to “PHP Knowledge”

Who is online

Users browsing this forum: No registered users and 2 guests