如何将图像转换为html?

Posted

技术标签:

【中文标题】如何将图像转换为html?【英文标题】:How to convert image to html? 【发布时间】:2012-05-31 19:45:34 【问题描述】:

有没有办法将图像转换为图像的html 等效项,方法是将html 表分成许多单元格,每个单元格都有特定的背景颜色,就像图像中的像素一样?很像 ASCII 艺术。

我认为这是一种在电子邮件签名中添加公司徽标的方式,而不必担心电子邮件客户端会阻止图像。

【问题讨论】:

【参考方案1】:

是的,很多人都这样做了:http://pgl.yoyo.org/img2html/ 就是一个例子。

【讨论】:

不起作用。甚至它自己的示例图像也会生成:This server does not support the imagecreatefromx-png() function; exiting。还有其他的吗? 这太糟糕了。好吧,电子邮件签名和 HTML 电子邮件通常很糟糕,所以也许它也一样! :) 我不知道——我是网络人而不是电子邮件人。【参考方案2】:

也许您需要的只是将图像转换为 URI 格式。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" >

http://jsfiddle.net/z6FFc/

【讨论】:

否,因为普通电子邮件客户端不允许超过 5KB 的签名 贵公司标志的尺寸(高*宽)是多少?【参考方案3】:

试试 STYLECampaign 中的“用于电子邮件的图像到 HTML 转换器”。如果我没记错的话,您将获得一个下载链接,以换取您在 stylecampaign.com 上订阅他们的时事通讯。该工具工作正常,具有缩放和压缩功能;这是一篇博客文章 http://bit.ly/Jhf1CK 和一个视频指南,解释了技巧和缺点:http://www.youtube.com/watch?v=VSi51yLQFnc

【讨论】:

【参考方案4】:

我会告诫不要尝试这种伎俩。

使用电子邮件做“聪明”事情的一个简单规则是首先询问“垃圾邮件发送者是否使用相同的技术?”。如果答案是肯定的,您可以确定 ISP 正在使用他们的过滤器来处理包含它的垃圾邮件。

在诱骗图像显示的情况下,无论是使用 base64 技巧还是 pixeldiv,这些技术已被垃圾邮件发送者使用多年,可能会损害您的发送声誉。

如果相关公司与收件人关系良好,他们会很乐意展示图片。一旦您回复或添加到联系人,许多客户端(如 gmail)将启用图像。此外,使用 DKIM 等技术签署您的标头、使用信誉良好的第三方发件人或支付 ReturnPath 认证费用可以提高您的声誉,足以覆盖大多数主要 ISP 的图像屏蔽。

【讨论】:

【参考方案5】:

Tom Walsh,是什么让您认为阻止图像的总是 ISP?电子邮件客户端呢?默认情况下,80% 的电子邮件都屏蔽了图像。依靠用户的努力或知识来更改这些设置是一个坏主意。

使用某些服务,例如 Mailchimp,每次发送时都会为您提供一个新的电子邮件地址,因此,您无法添加为安全发件人。上述技术是获取电子邮件列表的好方法,该列表已经双重选择加入,以接收电子邮件的半图片版本,以吸引他们下载图像。

顶部链接有效。我使用的是 JPG,我不确定它接受什么格式。就像您知道的那样,这使文件比普通的 JPG 大一点。考虑是否值得将其用于更大的图像,但对于电子邮件签名,我认为这是一个不错的用途。我注意到,有时当您回复时,签名会中断... sooooo .... 请注意,您最终可能会收到大量&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;/tr&gt;

最后警告...如果您的电子邮件签名确实中断并以代码形式结束...请注意顶部链接的默认设置是“arse”因此...一些客户可能会觉得这很冒犯。也许将其更改为您的公司名称。请记住,为该表格图像创建链接将 (a) 花费一些时间,并且 (b) 第二次使该代码膨胀。

【讨论】:

【参考方案6】:

终于完成了一个 PHP、CSS 和 HTML 的函数 最终这种方法应该被认为是Jpeg & Png to Div 转换。

实现这一点的方法是制作一个 html 元素网格,为每个值设置 RGB 背景颜色。

希望对来这里的人有所帮助,我第一次来这里只是发现了 Base64 转换,与原始 HTML 和 CSS 完全不同。

    <?php

// Convert Images to RAW HTML for Bypassing Email Protection, Project by Woke World 2021
// image2div($imagePath, $type, $scale);


echo image2div("test.png","png", 5);


// Custom Function by Woke World @ GitHub
function image2div($imagePath, $type, $scale)

if ($type == "png")

$resource = imagecreatefrompng('test.png');

else

$resource = imagecreatefromjpeg('test.jpg');

$width = imagesx($resource);
$height = imagesy($resource);
$html_start_1 = '
<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
</head>
<body>
<div style="display: grid;';
$cols = 'grid-template-columns: ';
$widths = 1;
while($widths <= $width)

   $cols .= "1fr ";
   $widths++;

$cols .= "; ";
$rows = 'grid-template-rows: ';
$heights = 1;
while($heights <= $height)

   $rows .= "1fr ";
   $heights++;

$rows .= "; ";
$html_start_2 = '
  grid-gap: 0px;
  padding: 0px;
  border:0px;
  height: '.$height*$scale.'px;
  width:'.$width*$scale.'px;
  ">';
$blocks = '';
$html_end = '
</div></body></html>';

for($y = 0; $y < $height; $y++) 
  for($x = 0; $x < $width; $x++) 
        $color = imagecolorat($resource, $x, $y);
        $color_rgb = imagecolorsforindex($resource, $color);
        $red = $color_rgb["red"];
        $green = $color_rgb["green"];
        $blue = $color_rgb["blue"];
        $alpha = $color_rgb["alpha"];
        $blocks .= '<div style="background-color: rgb('.$red.','.$green.','.$blue.'); margin:-1px;"></div>';

    


$build = $html_start_1.$cols.$rows.$html_start_2.$blocks.$html_end;
return $build;

?>

【讨论】:

【参考方案7】:

尝试转换为 html/css。它比 base64 更紧凑,虽然我还没有尝试过,但它应该可以工作。它使用 css 来创建图像,而不需要任何外部的东西。不要注意顶部,那是完成所有工作的代码所在的地方。注意底部。 https://codepen.io/blazeeboy/pen/bCaLE

no code. just something I have to do to get the post online.

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review @RohitGupta:链接指向进行转换的工具(如要求的那样)。我怀疑还有更多有用的信息可以添加。如果您认为问题是要求提供场外资源/工具,则应改为标记。 @IInspectable,OP 没有要求工具。他要求一种方法来做到这一点,可以是代码。无论您以哪种方式对其进行切片,这都是仅链接的答案,用户已将垃圾放入其中以使其被接受!归根结底,这是我的意见。如果再有2个审稿人同意,将被删除。如果他们不这样做,它就会留下来。总有一些方法可以增强答案,例如发布屏幕截图或示例结果。反对票不是我的。我更喜欢发布 cmets。 @RohitGupta:我同意你的观点,答案应该比这更高。不过,平心而论,我发现这个问题比这个答案更令人怀疑。它询问某事是否可能,并解释了一种方法。由于 OP 已经知道需要做什么,我将其解读为要求使用工具为他们做这件事。当然,一个好的答案会解释实现细节(包括 HTML 表格和 CSS),并在理想情况下对比两种解决方案。并且可以选择包含指向进行转换的工具的链接。

以上是关于如何将图像转换为html?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 HTML 表格转换为图像?

如何使用 C# 将图像转换为 Html 的数据 URI?

如何将html模板(带图像)转换为pdf?

如何将 html & css 转换为图像?

如何将 html 地图转换为图像(png 或 jpg )

Python如何将RGB图像转换为Pytho灰度图像?