如何通过文件名起作用并循环播放和裁剪图像?

如何解决如何通过文件名起作用并循环播放和裁剪图像?

| 我正在尝试裁剪图像列表。该列表存储在txt文件中。 我遍历txt文件并将img url存储到数组中
Array ( [0] => img001.jpg [1] => img002.jpg [2] => img003.jpg [3] => img004.jpg ) 
.PHP,.txt和.jpg图像都在同一文件夹中,并且有一个IMG2子文件夹。 我正在本地运行。 我在加载文件时遇到错误,但是现在我只得到了一个空白屏幕。 有人可以帮我遍历数组中的文件吗?我意识到在下面的示例中,我只是从$ lines [1]发送一个值,那是因为我什至无法使它起作用。 一旦可行,添加一个FOR循环应该很简单。 谢谢
    <?PHP
error_reporting(E_ALL);
ini_set(\'display_errors\',\'1\');

$fd = fopen (\"files.txt\",\"r\");
while (!feof ($fd))
{
   $buffer = fgets($fd,4096);
   $lines[] = $buffer;
}
fclose ($fd); 

print_r($lines);

$imgurl = $lines[1]; 

processImage($imgurl);  //or below line doesn\'t work
//foreach ($lines as $imgurl) processImage(trim($imgurl));

Function processImage($imgurl) {
    //load the image

    $img = @imagecreatefromjpeg($imgurl);

    if (!$img) { /* See if it Failed */
        $img  = imagecreatetruecolor(150,30); /* Create a black image */
        $bgc = imagecolorallocate($img,255,255);
        $tc  = imagecolorallocate($img,0);
        imagefilledrectangle($img,150,30,$bgc);
        /* Output an errmsg */
        imagestring($img,1,5,\"Error loading $imgurl\",$tc);
    }
    return $img;

    $b_top = 0;
    $b_btm = 0;
    $b_lft = 0;
    $b_rt = 0;

    //top
    for(; $b_top < imagesy($img); ++$b_top) {
      for($x = 0; $x < imagesx($img); ++$x) {
        if(imagecolorat($img,$x,$b_top) != 0xFFFFFF) {
           break 2; //out of the \'top\' loop
        }
      }
    }

    //bottom
    for(; $b_btm < imagesy($img); ++$b_btm) {
      for($x = 0; $x < imagesx($img); ++$x) {
        if(imagecolorat($img,imagesy($img) - $b_btm-1) != 0xFFFFFF) {
           break 2; //out of the \'bottom\' loop
        }
      }
    }

    //left
    for(; $b_lft < imagesx($img); ++$b_lft) {
      for($y = 0; $y < imagesy($img); ++$y) {
        if(imagecolorat($img,$b_lft,$y) != 0xFFFFFF) {
           break 2; //out of the \'left\' loop
        }
      }
    }

    //right
    for(; $b_rt < imagesx($img); ++$b_rt) {
      for($y = 0; $y < imagesy($img); ++$y) {
        if(imagecolorat($img,imagesx($img) - $b_rt-1,$y) != 0xFFFFFF) {
           break 2; //out of the \'right\' loop
        }
      }
    }

    //copy the contents,excluding the border
    $newimg = imagecreatetruecolor(imagesx($img)-($b_lft+$b_rt),imagesy($img)-($b_top+$b_btm));

    imagecopy($newimg,$img,$b_top,imagesx($newimg),imagesy($newimg));

    //finally,output the image
    header(\"Content-Type: image/jpeg\");
    imagejpeg($newimg);

    // Save the image
    $newname = \"t_\".$imgurl;
    imagejpeg($newimg,$newname);

    // Free up memory   
    imagedestroy($newimg);
    imagedestroy($img);


}

?>
    

解决方法

        在图像处理功能顶部的某处,您可以看到以下行:
return $img;
这样一来,它总是从那里的函数返回,此后的代码永远不会到达。 只需删除该行即可使您走得更远。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?