如何将呈现的HTML代码块或div转换为PNG?

如何将呈现的HTML代码块或div转换为PNG?,html,canvas,Html,Canvas,注意事项: a) 不是整个页面, b) 不是从服务器端 c) 例如,呈现或“处理”HTML, 事实1事实2 所需结果(PNG): 事实1事实2 事实3事实4 ... 不是 事实1事实2 事实3事实4 ... “符号”nbsp可用于创建空白,但同样需要渲染 可能是某个javascript首先充当ua(浏览器)来获取渲染数据,然后 然后将其转换为PNG支持的bmp格式。。。怎样?代码示例将不胜感激 非常感谢。在服务器端生成它有什么问题 编辑:仅仅使用html+css有什么不对?对于用户来说,它

注意事项:
a) 不是整个页面,
b) 不是从服务器端
c) 例如,呈现或“处理”HTML,

事实1事实2

所需结果(PNG):

事实1事实2 事实3事实4 ... 不是 事实1事实2 事实3事实4 ...

“符号”nbsp可用于创建空白,但同样需要渲染

可能是某个javascript首先充当ua(浏览器)来获取渲染数据,然后 然后将其转换为PNG支持的bmp格式。。。怎样?代码示例将不胜感激


非常感谢。

在服务器端生成它有什么问题

编辑:仅仅使用html+css有什么不对?对于用户来说,它看起来是一样的,打印出来的也是一样的,而且它更快、可搜索、可访问,您可以使用Javascript轻松地对其进行操作。我不明白你为什么一开始就想要这些图像

这个问题的简短答案与下面的答案相同:不,你不能。 您必须克服许多问题,包括但不限于:

  • 您需要将HTML正确地呈现为位图。这比看起来要困难得多

  • 使用PNG压缩图像并不是一件小事,虽然用JS在技术上可以做到这一点,但这绝对是一个非常糟糕的主意

即使你设法解决了这些问题,你最终也会得到一些骇客和非常脆弱的代码,这些代码几乎没有机会跨浏览器工作

这样做就像需要一些 月球火箭的研制 收割月球尘埃,使其 而不是在家得宝买一些

-切亚约兹,关于一个话题

但是,您可能需要查看以下内容(SVG、画布、服务器端生成等)


编辑2:直接从HTML文件加载的图像

我使用PHP对这些图像进行base64_编码。以下是消息来源:

<script type="text/javascript">
var i = 0;
var imgs = [];
<?php

$imgArray = array('angry.gif', 'pray.gif', 'think.gif');
$imgs = array_map(function ($d) {return base64_encode(file_get_contents($d));}, $imgArray);
$i=0;

foreach ($imgs as $img) {
    echo 'imgs[' . $i++ . '] = "' . $img . "\";\n";
}
?>

function changeImg() {
    i = (i+1) % imgs.length;
    var img = document.getElementById('theImage');
    img.src = 'data:image/gif;base64,' + imgs[i];
}
</script>
<body onload="changeImg()">
<input type="button" onclick="changeImg();" value="Change Image" /><br /><br />
<img src="" id="theImage" alt="" />

var i=0;
var-imgs=[];
函数更改img(){
i=(i+1)%imgs.长度;
var img=document.getElementById('theImage');
img.src='data:image/gif;base64'+imgs[i];
}



在服务器端生成it有什么问题

编辑:仅仅使用html+css有什么不对?对于用户来说,它看起来是一样的,打印出来的也是一样的,而且它更快、可搜索、可访问,您可以使用Javascript轻松地对其进行操作。我不明白你为什么一开始就想要这些图像

这个问题的简短答案与下面的答案相同:不,你不能。 您必须克服许多问题,包括但不限于:

  • 您需要将HTML正确地呈现为位图。这比看起来要困难得多

  • 使用PNG压缩图像并不是一件小事,虽然用JS在技术上可以做到这一点,但这绝对是一个非常糟糕的主意

即使你设法解决了这些问题,你最终也会得到一些骇客和非常脆弱的代码,这些代码几乎没有机会跨浏览器工作

这样做就像需要一些 月球火箭的研制 收割月球尘埃,使其 而不是在家得宝买一些

-切亚约兹,关于一个话题

但是,您可能需要查看以下内容(SVG、画布、服务器端生成等)


编辑2:直接从HTML文件加载的图像

我使用PHP对这些图像进行base64_编码。以下是消息来源:

<script type="text/javascript">
var i = 0;
var imgs = [];
<?php

$imgArray = array('angry.gif', 'pray.gif', 'think.gif');
$imgs = array_map(function ($d) {return base64_encode(file_get_contents($d));}, $imgArray);
$i=0;

foreach ($imgs as $img) {
    echo 'imgs[' . $i++ . '] = "' . $img . "\";\n";
}
?>

function changeImg() {
    i = (i+1) % imgs.length;
    var img = document.getElementById('theImage');
    img.src = 'data:image/gif;base64,' + imgs[i];
}
</script>
<body onload="changeImg()">
<input type="button" onclick="changeImg();" value="Change Image" /><br /><br />
<img src="" id="theImage" alt="" />

var i=0;
var-imgs=[];
函数更改img(){
i=(i+1)%imgs.长度;
var img=document.getElementById('theImage');
img.src='data:image/gif;base64'+imgs[i];
}



目前,服务器端:我使用的是Railo,相当于Adobe的ColdFusion,但目前它无法做到这一点。所以,看起来我被卡住了。Aircule,这个PNG图像将作为一个基础。。。啊哈,只要知道你在谷歌工作。。。这张照片很有趣,很有趣,也很聪明,哥们:)“这样做就像需要一些混凝土和开发一个月球火箭来收集月球尘埃,而不是在家得宝买一些。-ceejayoz,“这对我来说绝对不是真的。@Aircule,我尝试了“创建一个图像并将其src设置为数据:资源”的第7步。”但Firefox和(该应用程序不是公共/托管服务,因此我们对浏览器有一定程度的“控制”/推荐。此外,尝试将SVG加载到画布也失败了。非常令人沮丧。@Don Don如果您这样做了#7,您需要以一种可用于HTML文件(即:base64)的方式对二进制数据进行编码.看这个,目前,服务器端:我在使用Railo,相当于Adobe的ColdFusion,目前它无法做到。所以,看起来我被卡住了。Aircule,这个PNG图像将作为一个基础…啊,只要知道你在谷歌工作…这张图片很有趣,有趣,聪明,伙计:)“这样做就像需要一些混凝土和开发月球火箭来收集月球尘埃,而不是在家得宝购买一些。”ceejayoz,“对我来说,这绝对不是真的。@Aircule,我尝试了“创建一个图像并将其src设置为数据:资源”的第7步,但在Firefox和(该应用程序不是公共/托管服务,因此我们有某种程度的“控制”)上失败“/建议使用浏览器。此外,尝试将SVG加载到画布也失败了。非常令人沮丧。@Don Don如果您这样做了#7,您需要以一种可以与HTML文件(即:base64)一起使用的方式对二进制数据进行编码。”你说你主要需要Firefox的支持,所以我只是想了解这个目的,作为一个很好的替代方案/解决方案,PNG的用途是什么?我可以问你为什么要这样做吗?你说你主要需要Firefox的支持,所以我是jus