26.07.2013, 12:45
|
Аспирант
|
|
Регистрация: 17.07.2013
Сообщений: 47
|
|
Screenshot определенной части экрана средствами javascript
Здравствуйте, уважаемые. Стоит такая задача: Превратить содержимое div-блока в картинку и предложить пользователю скачать её.
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
div {
width:200px;
background-color: green;
}
</style>
<script type="text/javascript" src="http://night-creature.com/html2canvas.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="downimg">
<div>
some text
</div>
</div>
<script language="javascript">
function downimg(){
html2canvas($('#downimg'), {
onrendered: function (canvas) {
var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream");
window.location.href = img;
}
});
}
</script>
<a href="javascript:void(0)" onClick="downimg()" >SAVE</a>
</body>
</html>
такто работает, но сохраняет без расширения.Приходиться руками писать png? что не есть хорошо. Нашол решения на сайте http://updates.html5rocks.com/2011/0...he-client-side но по англиске не понимаю, да и вобще не понял что там к чему. Хотелось бы чтоб как у ни в демо http://eligrey.com/demos/FileSaver.js/
Кто знает как это сделать
Последний раз редактировалось dmivasant, 26.07.2013 в 13:05.
|
|
26.07.2013, 13:11
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Ух ты! Не знал что такое можно провернуть в Firefox.
Подключай либы FileSaver.js и canvas-toBlob.js.
Когда нужно сохранить содержимое холста, вызывай:
canvas.toBlob(function(blob) {
saveAs(blob ,"blabla.png");
}, "image/png");
|
|
26.07.2013, 13:13
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
А причем тут jQuery?
|
|
29.07.2013, 04:17
|
Аспирант
|
|
Регистрация: 17.07.2013
Сообщений: 47
|
|
Сообщение от danik.js
|
Ух ты! Не знал что такое можно провернуть в Firefox.
Подключай либы FileSaver.js и canvas-toBlob.js.
Когда нужно сохранить содержимое холста, вызывай:
canvas.toBlob(function(blob) {
saveAs(blob ,"blabla.png");
}, "image/png");
|
А можно на моем примере подробно?
|
|
29.07.2013, 04:32
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Так прямо этот код и вставляй, без изменений
|
|
29.07.2013, 05:31
|
Аспирант
|
|
Регистрация: 17.07.2013
Сообщений: 47
|
|
Сообщение от danik.js
|
Так прямо этот код и вставляй, без изменений
|
Не понимаю я, вставил код, а нечего не работает
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
div {
width:200px;
background-color: green;
}
</style>
<script src="js/FileSaver.js"></script>
<script src="js/canvas-toBlob.js"></script>
<script type="text/javascript" src="http://night-creature.com/html2canvas.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="downimg">
<div>
some text
</div>
</div>
<script language="javascript">
canvas.toBlob(function(blob) {
saveAs(blob ,"blabla.png");
}, "image/png");
:help:
</script>
<form id="canvas-options">
<label>
Filename:
<input id="canvas-filename" class="filename" type="text" placeholder="doodle"/>
.png
</label>
<input type="submit" value="Save"/>
<input id="canvas-clear" type="button" value="Clear"/>
</form>
</body>
</html>
Последний раз редактировалось dmivasant, 29.07.2013 в 06:10.
|
|
29.07.2013, 05:56
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Ну вобще-то canvas с неба не свалится. Где у тебя тут вызов функции html2canvas? В коде выше у тебя все есть, а тут уже нету.
|
|
29.07.2013, 06:12
|
Аспирант
|
|
Регистрация: 17.07.2013
Сообщений: 47
|
|
Сообщение от danik.js
|
Ну вобще-то canvas с неба не свалится. Где у тебя тут вызов функции html2canvas? В коде выше у тебя все есть, а тут уже нету.
|
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
div {
width:200px;
background-color: green;
}
</style>
<script src="js/FileSaver.js"></script>
<script src="js/canvas-toBlob.js"></script>
<script type="text/javascript" src="http://night-creature.com/html2canvas.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="downimg">
<div>
some text
</div>
</div>
<script language="javascript">
function downimg(){
html2canvas($('#contener'), {
onrendered: function (canvas) {
var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream");
window.location.href = img;
}
});
}
canvas.toBlob(function(blob) {
saveAs(blob ,"blabla.png");
}, "image/png");
</script>
<form id="canvas-options">
<label>
Filename:
<input id="canvas-filename" class="filename" type="text" placeholder="doodle"/>
.png
</label>
<input type="submit" value="Save"/>
<input id="canvas-clear" type="button" value="Clear"/>
</form>
</body>
</html>
не работает
|
|
29.07.2013, 07:38
|
Аспирант
|
|
Регистрация: 17.07.2013
Сообщений: 47
|
|
Сообщение от dmivasant
|
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
div {
width:200px;
background-color: green;
}
</style>
<script src="js/FileSaver.js"></script>
<script src="js/canvas-toBlob.js"></script>
<script type="text/javascript" src="http://night-creature.com/html2canvas.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<div id="downimg">
<div>
some text
</div>
</div>
<script language="javascript">
function downimg(){
html2canvas($('#contener'), {
onrendered: function (canvas) {
var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream");
window.location.href = img;
}
});
}
canvas.toBlob(function(blob) {
saveAs(blob ,"blabla.png");
}, "image/png");
</script>
<form id="canvas-options">
<label>
Filename:
<input id="canvas-filename" class="filename" type="text" placeholder="doodle"/>
.png
</label>
<input type="submit" value="Save"/>
<input id="canvas-clear" type="button" value="Clear"/>
</form>
</body>
</html>
не работает
|
Куда вставить эту конструкцию, чтоб работала?
canvas.toBlob(function(blob) {
saveAs(blob ,"blabla.png");
}, "image/png");
|
|
29.07.2013, 08:21
|
|
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
Туда, где доступна переменная canvas, ясное же дело.
|
|
|
|