Отличный способ сохранить изображение - использовать собственный метод toDataURL
.
var element = document.getElementById('drawingCanvas');
var data = element.toDataURL();
// data holds the base64 encoded image of the canvas
Оттуда вы можете отправить его асинхронно на сервер
$.ajax({
'type': 'post',
'dataType': 'json',
'data': {'image': data},
'url': '/json/image_converter.php'
});
и преобразовать его в изображение, используя ImageMagick:
list($header, $data) = explode(',', $_POST['image']);
$image = base64_decode($data);
$magick = new Imagick();
$magick->setFormat('png');
$magick->readImageBlob($image);
$magick->writeImage('/home/dude/imagefile.png');
Редактировать: О, и, конечно, я забыл сказать, что IE не поддерживает canvas, поэтому нет метода toDataURL. Даже с обходным приемом explorer canvas.