我有一个脚本,为时事通讯生成一些HTML。我正在使用"align=left“浮动一个图像,并在它周围环绕文本。我使用内联CSS样式,在本例中为图像留出一些喘息的空间。Outlook会忽略这一点。Outlook也忽略了填充-我甚至尝试了10px的右边框,它也忽略了这一点。
我不能更改布局并将图像放入表格中。我正在考虑使用GD来操作图像,在图像的右侧添加8px的空格。问题是,由于这是一份发送给数千人的时事通讯,因此我需要将修改后的图像保存到服务器的某个位置,以便可以链接到它。我不想在运行过程中生成这个。
我没有使用GD或用PHP将文件保存到某个位置的经验。下面是我的图片代码:
<img alt="<?php print $main2['title']; ?>" height="127" width="185" src="http://www.mydomain.com/uploads/<?php print $main2['filename']; ?>" align="left" style="margin:8px 8px 0 0;"/>发布于 2012-01-06 21:43:57
你当然可以依赖CSS来处理时事通讯--仅仅是某些属性,而且是内联的。我们开展了一系列非常成功的活动,时事通讯看起来很适合每个人。
在我们的web服务器上有一个文件夹,里面有几千张修改过的小图片,这不是问题。
我们不能改变布局,因为这是一些重要的人想要的-而重要的人付给我一大笔钱来实现他们想要的事情。是的,我可以大声疾呼,也许可以说服他们,但如果我可以相反地花几个小时让它工作,何乐而不为?
FWIW,我确实设法用GD完成了这件事--并不像我想象的那么复杂--如果其他人需要它,我会把它贴出来:
// get image
$url = 'myimage.jpg';
$src = imagecreatefromjpeg($url);
// dimensions (just to be safe, should always be 185x127 though)
$src_wide = imagesx($src);
$src_high = imagesy($src);
// set white padding color
$clear = array('red'=>255,'green'=>255,'blue'=>255);
// new image dimensions with right padding
$dst_wide = $src_wide+8;
$dst_high = $src_high+8;
// New resource image at new size
$dst = imagecreatetruecolor($dst_wide, $dst_high);
// fill the image with the white padding color
$clear = imagecolorallocate( $dst, $clear["red"], $clear["green"], $clear["blue"]);
imagefill($dst, 0, 0, $clear);
// copy the original image on top of the new one
imagecopymerge($dst,$src,0,8,0,0,$src_wide,$src_high, 100);
// store the new image in tmp directory
$pth = 'tmp/myimage.jpg';
imagejpeg($dst, $pth, 100);
// free resources
imagedestroy($src);
imagedestroy($dst); 发布于 2012-01-05 18:59:12
你应该首先避免在时事通讯中使用css,因为你不能依赖它,除非你制作了它的纯文本版本。
对于这个简单的问题,这个方法似乎有点过头了。另外,你的图片将永远被修改。如果你将你的时事通讯发送给成千上万的人,我认为你应该首先确保你的客户都能够正确地检查它。
你说你不能改变布局,我能问一下为什么吗?
现在,为了回答你的问题,你不需要GD来做到这一点,你可以简单地创建一个脚本来批量“转换”你的图像,并为你的时事通讯做好准备。
例如:http://www.imagemagick.org/Usage/thumbnails/#pad
两点建议
First
在你的时事通讯中尝试使用表格而不是css,你将能够有效地在表格中填充表格。
第二个
首先检查问题,设计是一个问题,如果你想正确地到达所有的悬念,它真的很重要。看看mailchimp的免费账户,你可以免费设置一个时事通讯模板并对其进行测试,你将能够检查生成的代码。
发布于 2012-01-05 19:02:17
你可以使用gif间隔(老式的html,是的):
<img alt="" height="127" width="8" src="http://www.mydomain.com/spacer.gif" align="left" />Spacer是一个简单的1x1透明像素,你可以用html属性给它指定你需要的大小,这样就可以做到这一点。
顺便说一下,你的主要问题实际上是你如何构建你的html/css。这里有一些关于如何处理跨客户端html电子邮件的很好的参考资料:http://www.campaignmonitor.com/design-guidelines/
https://stackoverflow.com/questions/8741172
复制相似问题