J'essaie de sauvegarder une image avec Imagick avec php. Quand j'appelle saveImage()
ou saveImageFile()
je reçoisImagick mémoire insuffisante (case 4) lors de la sauvegarde
Fatal error: Uncaught exception 'ImagickException' with message 'Insufficient memory (case 4)
L'image est d'environ 1Mo grand et le script peut utiliser 256 Mo de mémoire, que je pense devrait être suffisant. Il y a beaucoup d'espace disponible sur le disque.
Quel peut être le problème?
Le code est le suivant:
<?php
list($type, $img) = explode(';', $img);
list(, $img) = explode(',', $img);
$data = base64_decode($img);
$image = new Imagick();
$image->readImageBlob($data);
$image->setImageFormat("jpeg");
$image->setInterlaceScheme(Imagick::INTERLACE_PLANE);
$image->writeImageFile(fopen($name.'-original.jpg','w'));
?>
Si je tente d'utiliser file_put_contents()
au lieu de saveImage()
un fichier vide est enregistré. Peut-être y a-t-il un problème avec la configuration du serveur?
La mémoire référencée est RAM et non disque. Cela peut arriver en cas d'hébergement partagé. Si vous avez un serveur dédié, essayez d'effectuer des opérations de ce type en arrière-plan :) – georoot
L'image @ raina77ow est au format JPEG. Le système est FreeBSD 8.3-RELEASE-p4 i386. PHP est PHP 5.6.16 – Rizhiy
Avez-vous vérifié [cette astuce] (https://www.mediawiki.org/wiki/Manual:%24wgMaxShellMemory)? – raina77ow