Что это такое?
blockquote>Это потому, что вы объявили этот класс последним классом из-за того, что он показывает эту пиктограмму.
Как удалить значок булавки?
blockquote>Если вы удалите последнее ключевое слово, чем этот значок будет удален.
Да. HTML2Canvas существует для рендеринга HTML на <canvas>
(который затем можно использовать в качестве изображения).
ПРИМЕЧАНИЕ. Известна проблема, что это не будет работать с SVG
Вы можете использовать PhantomJS , который является безгласным webkit (движок рендеринга в сафари и (до недавнего времени) хром). Вы можете узнать, как делать снимки экрана страниц здесь . Надеюсь, что это поможет!
Есть много вариантов, и у всех есть свои про и минусы.
Плюсы
Минусы
Плюсы
Против
Плюсы
Минусы
Плюсы
Против
Отказ от ответственности: я являюсь основателем ApiFlash. Я сделал все возможное, чтобы дать честный и полезный ответ.
Могу ли я рекомендовать библиотеку dom-to-image , которая была написана исключительно для решения этой проблемы (я являюсь сопровождающим). Вот как вы его используете (еще несколько здесь ):
var node = document.getElementById('my-node');
domtoimage.toPng(node)
.then (function (dataUrl) {
var img = new Image();
img.src = dataUrl;
document.appendChild(img);
})
.catch(function (error) {
console.error('oops, something went wrong!', error);
});
Использовать html2canvas просто включить плагин и метод вызова для преобразования HTML в Canvas, а затем загрузить как изображение PNG
html2canvas(document.getElementById("image-wrap")).then(function(canvas) {
var link = document.createElement("a");
document.body.appendChild(link);
link.download = "manpower_efficiency.jpg";
link.href = canvas.toDataURL();
link.target = '_blank';
link.click();
});
Источник: http://www.freakyjolly.com/convert-html- документа в образ-JPG-PNG-из-холст /
Вы, конечно, можете. API JavaScript GrabzIt позволяет вам захватывать div с веб-страницы следующим образом:
<script type="text/javascript" src="grabzit.min.js"></script>
<script type="text/javascript">
GrabzIt("Your Application Key").ConvertURL("http://www.example.com/my-page.html",
{"target": "#features", "bheight": -1, "height": -1, "width": -1}).Create();
</script>
Где #features - идентификатор div для захвата. Если вы хотите конвертировать HTML в изображение. Вы можете использовать эту технику:
GrabzIt("Your Application Key").ConvertHTML(
"<html><body><h1>Hello World!</h1></body></html>").Create();
Отказ от ответственности Я построил этот API!
Я не ожидаю, что это будет лучшим ответом, но он казался достаточно интересным для публикации.
Напишите приложение, которое открывает ваш любимый браузер в желаемый HTML-документ, правильно определяет окно, и снимает снимок экрана. Затем удалите границы изображения.
Вы можете добавить ссылку HtmlRenderer в свой проект и сделать следующее:
string htmlCode ="<p>This is a sample html.</p>";
Image image = HtmlRender.RenderToImage(htmlCode ,new Size(500,300));
Вы не можете сделать это на 100% точно с помощью JavaScript.
Там есть инструмент Qt Webkit из и версия python . Если вы хотите сделать это самостоятельно, у меня был успех с Cocoa:
[self startTraverse:pagesArray performBlock:^(int collectionIndex, int pageIndex) {
NSString *locale = [self selectedLocale];
NSRect offscreenRect = NSMakeRect(0.0, 0.0, webView.frame.size.width, webView.frame.size.height);
NSBitmapImageRep* offscreenRep = nil;
offscreenRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:nil
pixelsWide:offscreenRect.size.width
pixelsHigh:offscreenRect.size.height
bitsPerSample:8
samplesPerPixel:4
hasAlpha:YES
isPlanar:NO
colorSpaceName:NSCalibratedRGBColorSpace
bitmapFormat:0
bytesPerRow:(4 * offscreenRect.size.width)
bitsPerPixel:32];
[NSGraphicsContext saveGraphicsState];
NSGraphicsContext *bitmapContext = [NSGraphicsContext graphicsContextWithBitmapImageRep:offscreenRep];
[NSGraphicsContext setCurrentContext:bitmapContext];
[webView displayRectIgnoringOpacity:offscreenRect inContext:bitmapContext];
[NSGraphicsContext restoreGraphicsState];
// Create a small + large thumbs
NSImage *smallThumbImage = [[NSImage alloc] initWithSize:thumbSizeSmall];
NSImage *largeThumbImage = [[NSImage alloc] initWithSize:thumbSizeLarge];
[smallThumbImage lockFocus];
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
[offscreenRep drawInRect:CGRectMake(0, 0, thumbSizeSmall.width, thumbSizeSmall.height)];
NSBitmapImageRep *smallThumbOutput = [[NSBitmapImageRep alloc] initWithFocusedViewRect:CGRectMake(0, 0, thumbSizeSmall.width, thumbSizeSmall.height)];
[smallThumbImage unlockFocus];
[largeThumbImage lockFocus];
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
[offscreenRep drawInRect:CGRectMake(0, 0, thumbSizeLarge.width, thumbSizeLarge.height)];
NSBitmapImageRep *largeThumbOutput = [[NSBitmapImageRep alloc] initWithFocusedViewRect:CGRectMake(0, 0, thumbSizeLarge.width, thumbSizeLarge.height)];
[largeThumbImage unlockFocus];
// Write out small
NSString *writePathSmall = [issueProvider.imageDestinationPath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@-collection-%03d-page-%03d_small.png", locale, collectionIndex, pageIndex]];
NSData *dataSmall = [smallThumbOutput representationUsingType:NSPNGFileType properties: nil];
[dataSmall writeToFile:writePathSmall atomically: NO];
// Write out lage
NSString *writePathLarge = [issueProvider.imageDestinationPath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@-collection-%03d-page-%03d_large.png", locale, collectionIndex, pageIndex]];
NSData *dataLarge = [largeThumbOutput representationUsingType:NSPNGFileType properties: nil];
[dataLarge writeToFile:writePathLarge atomically: NO];
}];
Надеюсь, что это поможет!
Используйте этот код, он наверняка сработает:
<script type="text/javascript">
$(document).ready(function () {
setTimeout(function(){
downloadImage();
},1000)
});
function downloadImage(){
html2canvas(document.querySelector("#dvContainer")).then(canvas => {
a = document.createElement('a');
document.body.appendChild(a);
a.download = "test.png";
a.href = canvas.toDataURL();
a.click();
});
}
</script>
Не забудьте включить файл Html2CanvasJS в вашу программу. https://html2canvas.hertzen.com/dist/html2canvas.js
Установить phantomjs
$ npm install phantomjs
Создать файл github.js со следующим кодом
var page = require('webpage').create();
//viewportSize being the actual size of the headless browser
page.viewportSize = { width: 1024, height: 768 };
page.open('http://github.com/', function() {
page.render('github.png');
phantom.exit();
});
передать файл в качестве аргумента в phantomjs
$ phantomjs github.js
Рисование объектов DOM в холст показывает быстрый способ выполнить это.
С точки зрения производительности этот метод должен быть легким. Поскольку рендеринг svg и рендеринга dom могут, очевидно, передавать буферы назад & amp; если необходимо. Это имеет смысл, потому что это весь основной код.
У меня нет никаких эталонных показателей, но документы MDN довольно хорошо поддерживаются и не только для gecko. Поэтому я предполагаю, что вы, по крайней мере, можете знать, что плохая производительность - это проблема, которая будет рассмотрена в какой-то момент.