ImageMagick स्थापना सत्यापित करें


87

मेरी वेब होस्टिंग ने कहा कि ImageMagic सर्वर पर पहले से स्थापित है। मैंने phpinfo () के आउटपुट में "ImageMagick" की त्वरित खोज की और मुझे कुछ भी नहीं मिला। मैं सर्वर में SSH नहीं कर सकता इसलिए PHP में एक तरीका है जो मैं स्थापना को सत्यापित कर सकता हूं?

जवाबों:


48

इसे इस्तेमाल करे:

<?php
//This function prints a text array as an html list.
function alist ($array) {  
  $alist = "<ul>";
  for ($i = 0; $i < sizeof($array); $i++) {
    $alist .= "<li>$array[$i]";
  }
  $alist .= "</ul>";
  return $alist;
}
//Try to get ImageMagick "convert" program version number.
exec("convert -version", $out, $rcode);
//Print the return code: 0 if OK, nonzero if error. 
echo "Version return code is $rcode <br>"; 
//Print the output of "convert -version"    
echo alist($out); 
?>

22
यह परीक्षण अगर ImageMagick एप्लिकेशन को स्थापित किया गया है, तो PHP मॉड्यूल नहीं
bcosca

संस्करण वापसी कोड 0 * संस्करण है: ImageMagick 6.3.7 08/09/09 Q16 imagemagick.org * कॉपीराइट: कॉपीराइट (C) 1999-2008 ImageMagick Studio LLC
डेसमंड लियांग

यह वही है जो पृष्ठ लौटाता है। ऐसा लगता है कि इसे संस्करण को वापस करने में परेशानी हो रही है, लेकिन किसी तरह कॉपीराइट की जानकारी लौटाता है।
डेसमंड लियांग

जवाब काम कर सकता है, लेकिन नीचे दो सरल, आसान और स्पष्ट हैं। क्या इस डाउन-वोटिंग का यह एक अच्छा कारण है?
सोफीवॉर्स

2
यह एक समाधान है जो सवाल पूछने वाले व्यक्ति के लिए काम करता है। डाउन-वोटिंग सही उत्तरों के लिए नहीं है। यदि आपके पास शिष्टाचार के बारे में कोई प्रश्न है, तो आपको इसे meta.stackoverflow.com पर पूछना चाहिए
wajiw

148

यह उतना ही छोटा और मीठा है जितना इसे मिल सकता है:

if (!extension_loaded('imagick'))
    echo 'imagick not installed';

3
इसी तरह, कमांड लाइन से:php -r 'echo "imagick is ".(extension_loaded("imagick")?"":"not ")."installed\n";'
जॉन गिब्बिन्स

40

EDIT: नीचे दी गई जानकारी और स्क्रिप्ट केवल iMagick वर्ग पर लागू होती है - जिसे डिफ़ॉल्ट रूप से ImageMagick के साथ नहीं जोड़ा जाता है !!!

अगर मैं जानना चाहता हूं कि क्या इमेजमैगिक स्थापित है और वास्तव में एक php एक्सटेंशन के रूप में काम कर रहा है, तो मैं इस स्निपेट को एक वेब फ़ाइल में पेस्ट करता हूं

<?php

error_reporting(E_ALL); 
ini_set( 'display_errors','1');

/* Create a new imagick object */
$im = new Imagick();

/* Create new image. This will be used as fill pattern */
$im->newPseudoImage(50, 50, "gradient:red-black");

/* Create imagickdraw object */
$draw = new ImagickDraw();

/* Start a new pattern called "gradient" */
$draw->pushPattern('gradient', 0, 0, 50, 50);

/* Composite the gradient on the pattern */
$draw->composite(Imagick::COMPOSITE_OVER, 0, 0, 50, 50, $im);

/* Close the pattern */
$draw->popPattern();

/* Use the pattern called "gradient" as the fill */
$draw->setFillPatternURL('#gradient');

/* Set font size to 52 */
$draw->setFontSize(52);

/* Annotate some text */
$draw->annotation(20, 50, "Hello World!");

/* Create a new canvas object and a white image */
$canvas = new Imagick();
$canvas->newImage(350, 70, "white");

/* Draw the ImagickDraw on to the canvas */
$canvas->drawImage($draw);

/* 1px black border around the image */
$canvas->borderImage('black', 1, 1);

/* Set the format to PNG */
$canvas->setImageFormat('png');

/* Output the image */
header("Content-Type: image/png");
echo $canvas;
?>

आपको एक हैलो वर्ल्ड ग्राफिक देखना चाहिए:

यहाँ छवि विवरण दर्ज करें


22

बैश में:

$ convert -version

या

$ /usr/local/bin/convert -version

सिर्फ जांच के लिए किसी भी PHP फ़ाइल को लिखने की आवश्यकता नहीं है।


4
बस इसे देखने के लिए किसी और को बचाने के लिए - रूपांतरित करें शेल कमांड इमेजिक स्थापित करता है इसलिए उपरोक्त वार्ता सीधे यह जांचने के लिए है कि यह +1 है
Bananaapple

18

आप आसानी से PHP में इमेजिक क्लास के लिए देख सकते हैं।

if( class_exists("Imagick") )
{
    //Imagick is installed
}

9
महत्वपूर्ण: कभी-कभी यह रिटर्न गलत लेकिन extension_loaded('imagick')!: रिटर्न सही है, तो मुझे लगता है कि बेहतर हैif( extension_loaded('imagick') || class_exists("Imagick") ){ /*do Imagick*/ }
jave.web

8

बैश में आप जांच सकते हैं कि इमेजिक एक स्थापित मॉड्यूल है:

$ php -m | grep imagick

यदि प्रतिक्रिया रिक्त है तो यह स्थापित नहीं है।


7

इस एक-शॉट समाधान को आज़माएं, जो पता लगाना चाहिए कि ImageMagick कहां है, यदि आपके पास इसका उपयोग है ...

यह मेरी Godaddy होस्टिंग पर सभी संस्करणों को मिला।

इस फ़ाइल को अपने सर्वर पर अपलोड करें और इसे कॉल करें ImageMagick.phpया कुछ और फिर इसे चलाएं। आपको वह सभी जानकारी मिल जाएगी जिसकी आपको आवश्यकता है ... उम्मीद है ...

सौभाग्य।

<?
/*
// This file will run a test on your server to determine the location and versions of ImageMagick. 
//It will look in the most commonly found locations. The last two are where most popular hosts (including "Godaddy") install ImageMagick.
//
// Upload this script to your server and run it for a breakdown of where ImageMagick is.
//
*/
echo '<h2>Test for versions and locations of ImageMagick</h2>';
echo '<b>Path: </b> convert<br>';

function alist ($array) {  //This function prints a text array as an html list.
    $alist = "<ul>";
    for ($i = 0; $i < sizeof($array); $i++) {
        $alist .= "<li>$array[$i]";
    }
    $alist .= "</ul>";
    return $alist;
}

exec("convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"
echo '<br>';
echo '<b>This should test for ImageMagick version 5.x</b><br>';
echo '<b>Path: </b> /usr/bin/convert<br>';

exec("/usr/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version"

echo '<br>';
echo '<b>This should test for ImageMagick version 6.x</b><br>';
echo '<b>Path: </b> /usr/local/bin/convert<br>';

exec("/usr/local/bin/convert -version", $out, $rcode); //Try to get ImageMagick "convert" program version number.
echo "Version return code is $rcode <br>"; //Print the return code: 0 if OK, nonzero if error.
echo alist($out); //Print the output of "convert -version";

?>

1
एक पीडीएफ कन्वर्ट: कई thx। अच्छी पटकथा। दोनों hostgator और godaddy पर अच्छा काम किया ... बादल या AWS की तरह शांत नहीं, बल्कि मेरे छोटे व्यवसाय के ग्राहकों के बजट के भीतर।
21

1
घंटों के बाद ... यहाँ Google इसे खाता है: MediaWiki त्रुटि बनाने के लिए थंबनेल: sh: / usr / local / bin / Convert: ऐसी कोई फ़ाइल या निर्देशिका नहीं है
मार्टिन

मेरा एक .NET और Sitecore आधारित एप्लिकेशन है। अगर मैं ImageMagick का उपयोग कर रहा हूं या नहीं तो मैं अपने आवेदन की जांच कैसे करूं?
नताशा बत्रा

1

यदि आपकी ISP / होस्टिंग सेवा ने ImageMagick स्थापित किया है और PATH पर्यावरण चर में अपना स्थान रखा है, तो आप पा सकते हैं कि कौन से संस्करण इंस्टॉल किए गए हैं और कहां उपयोग कर रहे हैं:

<?php
echo "<pre>";
system("type -a convert");  
echo "</pre>";
?> 

1

केवल IMagick PHP एक्सटेंशन (पूर्ण ImageMagick सुइट नहीं) का परीक्षण करने के लिए, PHP फ़ाइल (testImagick.php) के रूप में निम्न को सहेजें और फिर इसे कंसोल से चलाएँ: php testImagick.php

<?php
$image = new Imagick();
$image->newImage(1, 1, new ImagickPixel('#ffffff'));
$image->setImageFormat('png');
$pngData = $image->getImagesBlob();
echo strpos($pngData, "\x89PNG\r\n\x1a\n") === 0 ? 'Ok' : 'Failed';
echo "\n";

साभार: https://mlocati.github.io/articles/php-windows-imagick.html


0

याद रखें कि इमेजिपिक (या वास्तव में किसी भी PHP मॉड्यूल) को स्थापित करने के बाद आपको अपने वेब सर्वर और / या php-fpm को फिर से शुरू करने की आवश्यकता है यदि आप इसका उपयोग कर रहे हैं, तो मॉड्यूल के लिए phpinfo () में दिखाई देगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.