Показать сообщение отдельно
  #12 (permalink)  
Старый 12.04.2016, 13:36
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Heny
а как отправлять на сервер? типа такого: xhr.send(downimg); ?
Получите результат работы canvas, и если изображение большого размера, то можно в формате jpeg, но если не очень, то лучше по умолчанию - png, так как jpeg плох тем, что при каждом сохранении в этом формате он будет сжиматься повторно, то есть качество при каждом сохранении ухудшается.

var data = canvas.toDataURL('image/png')


где canvas, это ссылка на объект canvas.

Далее, если форма отправляется обычным способом, то можно поместить data в скрытое поле textarea с именем downimg, если же асинхронно, то значит xhr.send(downimg=data);

На сервере это надо преобразовать в изображение:

if($img = explode('base64,/', $_POST['downimg'])[1] AND $img = imagecreatefromstring(base64_decode($img))) {
    //здесь сохранение изображения из ресурса $img средствами GD, а как это сделать зависит от того как передается изображение в CMIMEMail
}
Ответить с цитированием