1

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

4

4 回答 4

2

检查 PHP 的scandir()函数

遍历目录的结果并对每个项目进行图像处理。

于 2013-02-15T13:38:03.777 回答
1

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

就个人而言,我更喜欢使用PHP 提供的DirectoryIterator 。将其与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();
    }       
}

或者做一些你自己选择的图像处理。

于 2013-02-15T20:17:24.957 回答
1

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

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

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

于 2013-02-22T19:20:19.493 回答
0

我认为没有可以执行多个图像处理的功能。但是您可以使用 glob() 选择文件,然后循环执行您的过程?

于 2013-02-15T13:36:38.067 回答