Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2013, 00:19
Кандидат Javascript-наук
Отправить личное сообщение для Valdemor Посмотреть профиль Найти все сообщения от Valdemor
 
Регистрация: 30.03.2012
Сообщений: 128

Html5. Canvas. Png. Alpha
Есть у меня контекст (canvas), который нужно сохранить в png файл. Сам контекст - набор png-изображений с прозрачным фоном.
И, собственно, сабж: как сделать в контексте прозрачный фон в местах прозрачности самых изображений и как сохранить контекст в png вместе с прозрачностью фона
Ответить с цитированием
  #2 (permalink)  
Старый 04.05.2013, 01:18
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Canvas нормально работает с прозрачностью. Просто загрузите в него картинку как есть.
Сохранить в png в ff можно просто павой кнопкой на холсте -> сохранить как.=)
Или воспользоваться либами которые генерируют конкретные файлы из canvas - гуглятся на раз.
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 04.05.2013, 01:29
Кандидат Javascript-наук
Отправить личное сообщение для Valdemor Посмотреть профиль Найти все сообщения от Valdemor
 
Регистрация: 30.03.2012
Сообщений: 128

Мне нужен конкретный пример. Есть в html5 функция, сохраняющая контекст. Мне нужно знать - можна ли альфа-канал также передавать?

О, меня уже цитируют? Расту

Последний раз редактировалось Valdemor, 04.05.2013 в 01:34.
Ответить с цитированием
  #4 (permalink)  
Старый 04.05.2013, 01:50
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

В чём проблема то?
<!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
__________________
29375, 35

Последний раз редактировалось Aetae, 04.05.2013 в 02:39.
Ответить с цитированием
  #5 (permalink)  
Старый 04.05.2013, 17:45
Кандидат Javascript-наук
Отправить личное сообщение для Valdemor Посмотреть профиль Найти все сообщения от Valdemor
 
Регистрация: 30.03.2012
Сообщений: 128

Мне нужно сохранить сам контекст в файл.
Ответить с цитированием
  #6 (permalink)  
Старый 04.05.2013, 18:29
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

изображения с удаленного сервера нельзя попиксельно прочитать если не выставлены соотвт заголовки
Ответить с цитированием
  #7 (permalink)  
Старый 04.05.2013, 18:31
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

или вообще нельзя
Ответить с цитированием
  #8 (permalink)  
Старый 04.05.2013, 18:33
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

http://vk.com/app3568475 на смотри мое приложение. там изображение браузер генерирует а сохранить его можно php(методом PUT передать данные и записать в файл)
Ответить с цитированием
  #9 (permalink)  
Старый 04.05.2013, 18:43
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

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') );

?>
Ответить с цитированием
  #10 (permalink)  
Старый 04.05.2013, 19:03
Кандидат Javascript-наук
Посмотреть профиль Найти все сообщения от qwerty-клавиатура
 
Регистрация: 12.04.2013
Сообщений: 132

http://x9a.ru/samples/save.htm
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTML5 Canvas. Поворот изображения Valdemor Элементы интерфейса 3 29.04.2013 18:12
HTML5 Canvas не перерисовывает egreek Общие вопросы Javascript 11 22.02.2013 17:37
Html5 canvas эффект наведения Moonlight Оффтопик 16 29.01.2013 20:44
html5. Canvas Valdemor (X)HTML/CSS 2 25.08.2012 00:26
Canvas html5 Иваннн Оффтопик 9 16.01.2012 00:41