-1

感谢您抽出宝贵的时间。像这里的许多其他人一样,我是 PHP 新手。在这个脚本的第一部分(注意//works)中,我已经将文件中的一些名称加载到 URL 中,以显示我想要的图像。这样可行。现在我需要帮助自动调整所有这些图片的大小和裁剪。请看一下这个脚本,看看你是否看到了我应该做的不同的事情。

    <?php 
  $file = 'serverlist.txt'; // works
  $servers = ''; // works
  $imgheight = 200; // ??
  $imgwidth = 200; // ??
  if ($handle = fopen($file, 'r')) { // works
    while (!feof($handle)) { // works
      $content = trim(fgets($handle)); // works
      $names = explode(' ', $content); // works
      foreach ($names as $name) { // works
        $servers .= '<img src="http://minecraft.net/skin/' . $name. '.png" alt="">'; //works. 
      }
      foreach ($servers as $imgservers) { // ?
        $skin = imagecreatefrompng($imgservers); // ?
        $face = imagecreatetruecolor($width, $height); // ?
        imagecopyresized($face, $skin, 0, 0, 8, 8, $width, $height, 8, 8); // ?
        imagecopyresized($face, $skin, 0, 0, 40, 8, $width, $height, 8, 8); // ?
      }

    }
   fclose($handle); // works
  }
?>

<html>
<head>
</head>
<body>
<?php
imagepng($face); // ?
 ?>
</body>
</html>
4

2 回答 2

1

$servers是所有附加在一起的图像的长字符串。在输出之前,您需要分离每个图像并单独处理它。

编辑: 读取文件时,您可以保存所有修改后的图像。然后在你的身体里,输出所有的图像:

$file = 'serverlist.txt';
$images = array();
...
    foreach ($names as $name) {
      $url = 'http://minecraft.net/skin/' . $name. '.png';
      $skin = imagecreatefrompng($url);
      ...
      imagecopyresized($face, $skin, 0, 0, 40, 8, $width, $height, 8, 8);
      $images[] = $face;
    }
...

</head>
<body>
  <?php
    foreach ($images as $image) {
      imagepng($image);
    }
  ?>
</body>
于 2013-03-16T21:10:52.367 回答
0

你应该有你png的路径而不是Html标签。所以你必须改变 $servers

于 2013-03-16T21:14:12.777 回答