-1

お時間を割いていただきありがとうございます。ここにいる他の多くの人と同じように、私は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>
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

Htmlタグではなくpngへのパスが必要です。したがって、 $servers を変更する必要があります

于 2013-03-16T21:14:12.777 に答える