我使用log4j WriterAppender文件生成一个html文件。我还使用webdriver拍摄了我的屏幕快照。现在我想将它们加在一起。
知道怎么做吗?
谢谢!
抱歉不清楚和愚蠢。我的情况是我有一个html文件,它是由我的记录器类动态生成的,然后有一些.png文件也是动态创建的。现在我希望它们一起出现在一个文件中。我现在清楚了吗?如有需要,请询问更多信息
答案 0 :(得分:3)
可以通过几种方式嵌入图形数据。大多数现代浏览器接受数据:url表示法。图像可以直接嵌入到URL中。
我从this site举了一个例子。将整行剪切并粘贴到网址栏中:
data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7
您应该看到一个文件夹图形。一些较旧的浏览器不接受这一点,并且出于安全原因,一些诸如IE8以各种方式将内容限制为静态内容。
第二种方法是服务器提供多部分MIME。基本上,服务器将推出由HTML主体组成的多部分mime文档,然后将任何内嵌图像base64编码为单独的部分。这更适合电子邮件HTML,尽管它可以通过Web浏览器工作。
答案 1 :(得分:2)
目前还不太清楚你在这里问什么,但我们假设你想手动将图像添加到日志输出HTML文件中。
如果要在HTML文件中包含图像,只需将快照PNG文件保存在相对于生成HTML的位置,然后使用标准HTML语法包含它:
<img src="images/snapshot.png" alt="snapshot description">
更新:要求是将动态生成的PNG文件添加到动态创建的HTML日志文件中。
如果一个进程同时创建了PNG和日志输出,那么您应该没问题 - 只需记下相应的PNG文件名并将其包含在IMG标记的记录器输出中(如上所述)。
如果它们是由不同的流程生成的,那可能会更困难;你需要坚持一个已知的命名约定,让进程生成日志查询文件系统,以确定要包含的适当的PNG文件,或者在两个进程之间构建某种消息传递。
答案 2 :(得分:1)
当所有这些答案基本上告诉您将两种不同文件格式连接到一个文件中的概念没有意义时,请停止向给您的每个和任何不同答案发布相同的评论。
为了清楚起见,让我再重复一遍:将PNG文件复制到HTML文档中毫无意义。
您可以将PNG保存在HTML文档中可以访问的目录中,并添加一个img标记,以便可以引用它(请参阅 stark 的答案),这是推荐的方法。易用性和使用文件的用语。
如果您真的想要以任何理由最终得到一个文件,那么基本上有两个选项:您遵循 locka 的建议并使用Base64编码PNG图像并插入img标记在有意义的位置的数据URI。这可能涉及解析HTML“一点点”,以便找到一个插入它的好地方。
另一种选择是不创建HTML,而是创建MHTML文件。 MHTML是一种文件格式,允许将HTML源代码和图像等资源保存到单个文件中。 MHTML目前最受欢迎的浏览器支持,你可以在这里找到关于文件格式的信息:http://people.dsv.su.se/~jpalme/ietf/mhtml.html
答案 3 :(得分:0)
将HTML文件附加到PNG文件是没有意义的,反之亦然。这两种文件格式都不允许这样做,所以如果你这样做,你将得到一个典型的网络浏览器或图像浏览器无法理解的“损坏”文档。
“我希望它们一起显示在一个文件中”。
这仍然很模糊,我很害怕。
假设您希望在浏览器中打开HTML文档时,图像显示为嵌入在HTML文档中,简单的解决方案是创建单独的HTML和PNG文件,并使用{{}将HTML文件链接到PNG文件{1}}元素。
如果需要,可以将文件(和其他文件)捆绑为ZIP或TAR文件,以便将所有内容作为单个文件提供。但是,通常需要在可以查看文档之前提取ZIP / TAR文件。 (典型的Web浏览器不会“显示”ZIP文件。而是会在某种存档提取器或目录浏览器中打开它,允许用户访问各个文件。)
也可以通过base64编码图像将图像文件嵌入到HTML文件中,并使用嵌入式javascript对图像进行解码,然后将其插入到DOM中......但这可能是复杂的。
答案 4 :(得分:0)
在生成html的代码中,您应该使用img html标记包含img
答案 5 :(得分:0)
如果您希望图片显示在html中,请添加标记
{h}的<img src=./img.png />
。
如果您想将2个文件合二为一,那么您需要将它们压缩成存档或其他内容吗?