2013-03-16 40 views
-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> 

回答

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> 
+0

所以我应该做'foreach'里面'如果'与'$服务器'? – user2176480 2013-03-16 21:15:31

+0

查看['imagepng()'](http://www.php.net/manual/en/function.imagepng.php)的文档。它“将PNG图像输出到浏览器或文件”。您需要等待调用'imagepng()',直到您获得''标签。 – Aiias 2013-03-16 21:21:08

+0

我更新了代码。仍然不给我我期待的结果。我做了另一个foreach,我不知道如果我应该。 – user2176480 2013-03-16 21:33:11

0

你应该有你的路径PNG的不是Html标签。所以你必须改变$服务器

+0

'imagecopyresized'将不起作用,如果我使用它创建一个网址的img?图像将根据txt文件中的名称生成。我无法控制拥有图片的页面(数百万页)。 – user2176480 2013-03-16 21:18:25