调整/裁剪脚本中的多个图像

时间:2013-03-16 21:07:58

标签: php foreach image-resizing

感谢您抽出宝贵时间。像这里的许多其他人一样,我是PHP的新手。在这个脚本的第一部分(注意//有效)我已经将文件中的一些名称加载到一个显示我想要的图像的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>

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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