Html5. Canvas. Png. Alpha
Есть у меня контекст (canvas), который нужно сохранить в png файл. Сам контекст - набор png-изображений с прозрачным фоном.
И, собственно, сабж: как сделать в контексте прозрачный фон в местах прозрачности самых изображений и как сохранить контекст в png вместе с прозрачностью фона:help: :help: :help: |
Canvas нормально работает с прозрачностью. Просто загрузите в него картинку как есть.
Сохранить в png в ff можно просто павой кнопкой на холсте -> сохранить как.=) Или воспользоваться либами которые генерируют конкретные файлы из canvas - гуглятся на раз. |
Мне нужен конкретный пример. Есть в html5 функция, сохраняющая контекст. Мне нужно знать - можна ли альфа-канал также передавать?
О, меня уже цитируют? Расту :lol: :thanks: |
В чём проблема то?
<!DOCTYPE HTML>
<html lang="ru-RU">
<head>
<meta charset="UTF-8">
<style type="text/css">
*{padding:0;margin:0;}
html,body{
width:100%;
height:100%;
background: rgb(157,213,58);
background: linear-gradient(135deg, #9dd53a 0%,#a1d54f 50%,#80c217 51%,#7cbc0a 100%);
}
</style>
</head>
<body>
<script type="text/javascript">
var img = new Image();
img.onload = goCanvas;
img.src = 'http://dobrochan.ru/src/png/1009/nya.png';
function goCanvas(){
var d = document,
canvas = d.createElement('canvas'),
ctx = canvas.getContext('2d');
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
d.body.appendChild(canvas)
}
</script>
</body>
</html>
Или нужна нужна маска? http://learn.javascript.ru/play/Lf6nqb |
Мне нужно сохранить сам контекст в файл.
|
изображения с удаленного сервера нельзя попиксельно прочитать если не выставлены соотвт заголовки
|
или вообще нельзя
|
http://vk.com/app3568475 на смотри мое приложение. там изображение браузер генерирует а сохранить его можно php(методом PUT передать данные и записать в файл)
|
HTMLCanvasElement.prototype.toBlob = function(type, quality) {
var dataURL = this.toDataURL(type, quality),
binary = atob( dataURL.substr( dataURL.indexOf(',') + 1 ) ),
i = binary.length,
view = new Uint8Array(i);
while (i--) {
view[i] = binary.charCodeAt(i);
}
return new Blob([view], {type: type});
};
var blob = document.getElementById('mycanvas').toBlob();
// отправляем методом PUT с помощью ajax на save_image.php
save_image.php <?php $_SERVER['REQUEST_METHOD'] == 'PUT' || die; file_put_contents( 'image.png', file_get_contents('php://input') ); ?> |
|
| Часовой пояс GMT +3, время: 04:37. |