生成的图像的变量字体大小不正确,具体取决于浏览器

时间:2013-08-06 04:20:57

标签: php gd font-size

我有一个简单的PHP脚本,base image会在顶部添加一些文字并将the result传递给浏览器。

问题是文本在不同浏览器上的大小不同。我不能为我的生活理解为什么。是不是所有的东西都在服务器端组装,因此应该总是看起来一样?

以下是完整的脚本:

<?php

$ext = $source_type = end(explode('.', $_REQUEST['base_image']));
if( $source_type == 'jpg' ) $source_type = 'jpeg';
$read = "imagecreatefrom$source_type";
$output = "image$source_type";
list($x, $y) = explode('x', $_REQUEST['position']);
list($r, $g, $b) = explode(',', $_REQUEST['color']);

$size = $_REQUEST['size'];
$text = $_REQUEST['text'];
$font = realpath($_REQUEST['font']);
$image = $read($_REQUEST['base_image']);
list($llx, $lly, $lrx, $lry, $urx, $ury, $ulx, $uly) = imageftbbox($size, 0, $font, $text);
$offset = ($lrx - $llx) / 2;
$color = imagecolorallocate($image, $r, $g, $b);
imagefttext($image, $size, 0, $x-$offset, $y, $color, $font, $text);
header("Content-Type: image/$source_type");
header("Content-Disposition: attachment; filename=\"wolfpackbadge.$ext\"");
$output($image);

我家里有一台计算机,显示的文字在显微镜下很小。我也有其他人有大文字的报告。下面是图像外观的示例:

How it should look

以下是我家中一台计算机上显示内容的截图:

Too Tiny

以下是截取报告给我的其他用户的截图:

Too Big

更多信息:

  • 在IE中查看时,我家中的计算机看起来不错。仅在Windows Chrome上,它看起来很奇怪。但我家中的另一台Windows机器通常会在Chrome中显示。
  • 我从其他人处获得的报告也表明存在问题的浏览器包括Chrome,Android和iOS。

我的问题是:

  • 如果图像是在服务器端生成的,那么根据浏览器的不同,字体会有什么不同?
  • 我可以更改脚本以删除此问题吗?

我尝试过的一些事情。

  • 我尝试将字体从otf转换为ttf以确保字体类型不是问题。
  • 我尝试将源和输出图像更改为jpeg以外的其他内容

0 个答案:

没有答案