ติดปัญหา Error Class 'Imagick' not found (Imagemagick PHP)

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

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

ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16010
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

ติดปัญหา Error Class 'Imagick' not found (Imagemagick PHP)

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

ทำการติดตั้ง imagick บน ubuntu ไปเรียบร้อยแล้ว แต่พอเรียกใช้กับ php ขึ้น Error
อยากจะทราบว่า
1. ต้อง load ไฟล์ dll ของ imagick ได้ที่ไหนและต้องวางที่ใด
2. ในส่วนของไฟล์ php.ini บน ubuntu จะต้องใส่ extention ของ imagick ใน path ใด
เพราะ php.ini จะมีอยู่ในโฟลเดอร์ที่เป็น PHP ที่อยู่ใน etc กับ opt

Error :

โค้ด: เลือกทั้งหมด

Fatal error: Uncaught Error: Class 'Imagick' not found in /opt/lampp/htdocs/imagick/imagick_example.php:3 Stack trace: #0 {main} thrown in /opt/lampp/htdocs/imagick/imagick_example.php on line 3

ส่วนของ code

โค้ด: เลือกทั้งหมด

<?php
/* Read the image */
$im = new Imagick("test.jpg");

/* Thumbnail the image */
$im->thumbnailImage(200, null);

/* Create a border for the image */
$im->borderImage(new ImagickPixel("white"), 5, 5);

/* Clone the image and flip it */
$reflection = $im->clone();
$reflection->flipImage();

/* Create gradient. It will be overlayd on the reflection */
$gradient = new Imagick();

/* Gradient needs to be large enough for the image and the borders */
$gradient->newPseudoImage($reflection->getImageWidth() + 10, $reflection->getImageHeight() + 10, "gradient:transparent-black");

/* Composite the gradient on the reflection */
$reflection->compositeImage($gradient, imagick::COMPOSITE_OVER, 0, 0);

/* Add some opacity. Requires ImageMagick 6.2.9 or later */
$reflection->setImageOpacity( 0.3 );

/* Create an empty canvas */
$canvas = new Imagick();

/* Canvas needs to be large enough to hold the both images */
$width = $im->getImageWidth() + 40;
$height = ($im->getImageHeight() * 2) + 30;
$canvas->newImage($width, $height, new ImagickPixel("black"));
$canvas->setImageFormat("png");

/* Composite the original image and the reflection on the canvas */
$canvas->compositeImage($im, imagick::COMPOSITE_OVER, 20, 10);
$canvas->compositeImage($reflection, imagick::COMPOSITE_OVER, 20, $im->getImageHeight() + 10);

/* Output the image*/
header("Content-Type: image/png");
echo $canvas;
?>
ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 41117
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: ติดปัญหา Error Class 'Imagick' not found (Imagemagick PHP)

โพสต์ที่ยังไม่ได้อ่าน โดย mindphp »

ถ้าติดตั้ง imagick และ php imagick แล้ว

php.ini
เพิ่ม

โค้ด: เลือกทั้งหมด

extension="imagick.so"
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042
ภาพประจำตัวสมาชิก
eange08
PHP VIP Members
PHP VIP Members
โพสต์: 16010
ลงทะเบียนเมื่อ: 22/12/2020 10:09 am

Re: ติดปัญหา Error Class 'Imagick' not found (Imagemagick PHP)

โพสต์ที่ยังไม่ได้อ่าน โดย eange08 »

mindphp เขียน: 25/12/2020 2:24 am ถ้าติดตั้ง imagick และ php imagick แล้ว

php.ini
เพิ่ม

โค้ด: เลือกทั้งหมด

extension="imagick.so"
ขอบคุณค่ะ :biggrin: ใส่ใน php.ini และ imagick ทำงานได้แล้วนะคะ
เพิ่มเติม
- หากบางเครื่องใช้ extension="imagick.so" ไม่ได้ผล ก็สามารถใส่ได้อีกแบบคือ

โค้ด: เลือกทั้งหมด

extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20121212/imagick.so"
แต่ส่วนชื่อโฟลเดอร์ no-debug-non-zts-20121212 จะต้องเปลี่ยนให้เหมือนในเครื่องเรา เพราะตอนลงติดตั้ง imagick มันจะสร้างชื่อโฟลเดอร์ใหม่เสมอ
ตอบกลับโพส
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 42