У меня эта ошибка возникает при попытке манипулировать изображением с помощью ImageMagick и PHP. Вот код:ImageMagick 6.5.4: вызов неопределенного метода Imagick :: readFromBlob()
<?php
require 'config.php';
// Variables
$x = (int) $_POST['x'];
$y = (int) $_POST['y'];
$width = (int) $_POST['width'];
$height = (int) $_POST['height'];
// Source
$pos = strpos($_POST['src'], 'base64,') + 7;
$contents = base64_decode(substr($_POST['src'], $pos));
// Mime types
$types = array(
'jpg' => 'image/jpeg',
'png' => 'image/png',
'gif' => 'image/gif'
);
// Data
$data = array(
'mime' => substr($_POST['src'], 5, $pos - 13)
);
$data['ext'] = array_search($data['mime'], $types);
if (!$data['ext']) {
$data['ext'] = 'png';
}
// Image
$image = new Imagick;
$image->readFromBlob($contents);
if ($data['ext'] == 'gif') {
$frames = $image->coalesceImages();
} else {
$frames = array($image);
}
foreach ($frames as $frame) {
$image->resizeImage($width, $height, Imagick::FILTER_CATROM, 0);
$image->cropImage($config['width'], $config['height'], $x, $y);
}
// Save
$path = $config['saveas'];
foreach ($data as $key => $value) {
$path = str_replace('{' . $key . '}', $value, $path);
}
$path = dirname(__FILE__) . '/../../' . $path;
$image->writeImage($path, $data['ext'] == 'gif');
echo json_encode(true);
А вот информация от phpinfo:
- модуль Imagick включен
- модуль Imagick версия 3.1.0RC2
- классы Imagick Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
- ImageMagick версия ImageMagick 6.5.4-7 2012-05-07 Q16 OpenMP
При использовании F12 в хроме и проходит обработку небольшого изображения, это моя ошибка в полном комплекте:
AJAX AvatarChanger.js ошибка: 354
<br />
<b>Fatal error</b>: Call to undefined method Imagick::readFromBlob() in <b>/home/solidarity/cog/avatar/php/done.php</b> on line <b>37</b><br />
Если кто-то здесь может помочь или есть какие-либо идеи, пожалуйста, поделитесь :)
Блестящий! Однако теперь я получаю это: Предупреждение: Imagick :: writeimage() ожидает, что в большинстве 1 параметр, 2 приведены в /home/solidarity/cog/avatar/php/done.php на линии
правда – Solidarity
Вы даже пытаетесь прочитать и понять эти сообщения об ошибках? Что вы ожидаете после прохождения второго аргумента? Он нигде не документирован и не влияет на то, как файл будет сохранен. Второй параметр необходим в другом методе - 'writeImages()' (обратите внимание на множественную форму). В следующий раз попробуйте провести некоторое исследование. –
Извиняюсь за то, что оскорбил вас ... Я больше не буду просить о помощи. – Solidarity