Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP GD生成的图像-如何与浏览器中心对齐?_Php_Gd - Fatal编程技术网

使用PHP GD生成的图像-如何与浏览器中心对齐?

使用PHP GD生成的图像-如何与浏览器中心对齐?,php,gd,Php,Gd,希望你们都做得很好 我使用PHP GD创建并编辑了一个图像,我用下面的代码将其发送到浏览器,但它完全对齐显示在浏览器的左侧,我尝试将css行为直接添加到img标记中,但没有发生任何事情,所以我想这永远不会起作用,因为它是一个显示图像的PHP标题,有没有办法在同一代码内将图像与浏览器的中心对齐,比如说使用边距0自动对齐div?正如您所看到的,我仍然是GD的新手,所以这里是我的代码,我非常感谢各位朋友: <?php $nombre=$_POST['nombre']; //Set the C

希望你们都做得很好

我使用PHP GD创建并编辑了一个图像,我用下面的代码将其发送到浏览器,但它完全对齐显示在浏览器的左侧,我尝试将css行为直接添加到img标记中,但没有发生任何事情,所以我想这永远不会起作用,因为它是一个显示图像的PHP标题,有没有办法在同一代码内将图像与浏览器的中心对齐,比如说使用边距0自动对齐div?正如您所看到的,我仍然是GD的新手,所以这里是我的代码,我非常感谢各位朋友:

<?php
$nombre=$_POST['nombre'];
  //Set the Content Type
header('Content-type: image/jpeg'); 


  // Create Image From Existing File
  $jpg_image = imagecreatefromjpeg('fabian.jpg');
      // get image dimensions
list($img_width, $img_height,,) = getimagesize("fabian.jpg");

  // Allocate A Color For The Text
  $white = imagecolorallocate($jpg_image, 255, 255, 255);

  // Set Path to Font File
  $font_path = 'fabian.TTF';

  // Set Text to Be Printed On Image
  $text =strtoupper($nombre);

  // Print Text On Image
  //imagettftext($jpg_image, 75, 0, 50, 400, $white, $font_path, $text);

 // find font-size for $txt_width = 80% of $img_width...
$font_size = 1; 
$txt_max_width = intval(0.8 * $img_width);    

do {

$font_size++;
$p = imagettfbbox($font_size,0,$font_path,$text);
$txt_width=$p[2]-$p[0];
// $txt_height=$p[1]-$p[7]; // just in case you need it

} while ($txt_width <= $txt_max_width);

// now center text...
$y = $img_height * 0.9 ;// baseline of text at 90% of $img_height
$x = ($img_width - $txt_width) / 2;

imagettftext($jpg_image, $font_size, 0, $x, $y, $white, $font_path, $text);



  // Send Image to Browser
  imagepng($jpg_image);


 // Clear Memory
  imagedestroy($jpg_image);

?>


非常感谢你的建议!祝您度过愉快的一天。

您需要添加
display:block到您的CSS规则,以使其集中


但是,如果您只是在浏览器中请求图像,那么实际上没有办法解决它,因为您需要知道浏览器窗口的尺寸,这在服务器端不可用。

您需要添加
显示:块到您的CSS规则,以使其集中


但是,如果您只是在浏览器中请求图像,那么实际上就没有办法了,因为您需要知道浏览器窗口的尺寸,这在服务器端是不可用的。

看起来您只是在用提供的代码输出图像文件。在此代码中无法指定任何浏览器应如何显示图像


如果某个地方有单独的HTML代码显示此图像,则应在其中指定与外观和位置相关的任何内容。因此,它变成了一个关于如何将图像居中的HTML/CSS问题,与PHP或GD无关。

看起来您只是在提供的代码中输出图像文件。在此代码中无法指定任何浏览器应如何显示图像


如果某个地方有单独的HTML代码显示此图像,则应在其中指定与外观和位置相关的任何内容。因此,如何将图像居中成为HTML/CSS问题,与PHP或GD无关。

您不能对图像本身进行此操作,因为PHP无法知道浏览器的尺寸以正确居中,您需要使用HTML显示图像,然后使用CSS将其居中。明白了,感谢cryptic,我将找到在主体中显示图像的方法,然后我将使用css从那里获取图像,我想我需要暂时保存它,然后检索文件。谢谢你不能对图像本身这样做,因为PHP无法知道浏览器的尺寸以正确居中,你需要使用HTML显示图像,然后使用CSS将其居中。明白了,感谢cryptic,我会找到在主体内显示图像的方法,然后使用CSS将其取下,我想我需要暂时保存它,然后检索文件。谢谢非常感谢pilsetnieks,知道了这一点,根据上面cryptic输入的评论,我想我现在明白了,我现在有了一个想法。再次感谢,朋友。非常感谢pilsetnieks,知道了这一点,根据上面cryptic输入的评论,我想我现在明白了,我有一个想法了。再次谢谢你,朋友。谢谢亚当,我就是这么想的;我将花一段时间来寻找检索图像的最佳方法,而不是在浏览器中请求图像;将在一段时间内找到检索图像的最佳方法,而不是在浏览器中请求图像。