如何在codeigniter中选择带有图片的整个文件夹?

时间:2013-02-15 13:33:50

标签: php codeigniter

我有一个项目,我需要在其中选择包含图片的整个文件夹,然后对文件夹内的所有图片进行转换。类似于Photoshop中的脚本,用于大量图片调整。

4 个答案:

答案 0 :(得分:2)

检查PHP的scandir()函数

循环浏览目录的结果,并对每个项目进行图像处理。

答案 1 :(得分:1)

嗯,CodeIgniters Manual确实有一些辅助函数,但我自己并没有使用它们。

就个人而言,我更习惯使用DirectoryIterator PHP为您提供服务。将其与CodeIgniters Image Manipulation Class相结合,您可以实现对图像处理的一些非常好的处理:

$images = array("jpg", "png", "bmp"); // Just to make sure that we get image files

foreach(new DirectoryIterator("/path/to/images/") as $file)
{
    if( $file->isFile() && in_array($file->getExtension(), $images) )
    {
        $config['image_library'] = 'imagemagick';
        $config['library_path'] = 'usr/bin/local/';
        $config['source_image'] = $file->getPathname();
        $config['new_image'] = $file->getPathname(); //Overwriting the source image
        $config['maintain_ratio'] = TRUE;
        $config['width']     = 75;
        $config['height']   = 50;       
        $this->load->library('image_lib', $config); 
        $this->image_lib->resize();
    }       
}

或者根据自己的选择进行一些图像处理。

答案 2 :(得分:1)

如果您使用的是linux,则可以使用ImageMagick的mogrify命令批量编辑图像。

示例:mogrify -resize 150x150 * .jpg 结果:所有图像都调整为150x150

还有一个PHP类可以处理PEAR中的ImageMagick功能。

答案 3 :(得分:0)

我认为没有可以执行多个图像处理的功能。但你可以选择带有glob()的文件,然后循环完成你的过程吗?