如何将图像调整大小与Gearman客户端集成



我已经为档案写了一个包装班:

class gearman {
    private $server_ip = '127.0.0.1';
    private $server_port = '4730';
    public function registerWorker($qName,$function){ // register function
        if (!($qName && $function)) return false;
        $qWorker = new GearmanWorker();
        $qWorker->addServer($this->$server_ip, $this->$server_port); // register worker in server
        $qWorker->addFunction($this->getQName($qName), $function);
        return $qWorker;
    }
    public function registerClient(){ //register client
        $qClient = new GearmanClient();
        $qClient->addServer($this->$server_ip, $this->$server_port); // send job to server
        return $qClient;
    }
public function doBg($function,$workload,$qClient = null){
    if (!$function) return false;
    if (!$qClient)
    {
        $qClient = $this->registerClient();
    }
    return $qClient->doBackground($this->getQName($function), json_encode($workload));
}
}

这些只是我班级的一部分。我还有另一堂课可以上传。这只是我将图像保存在服务器中的部分:

public function resize( $x, $y )
    {
        $new = imagecreatetruecolor($x, $y);
        imagealphablending($new, false);
        imagesavealpha($new, true);

        imagecopyresampled($new, $this->image, 0, 0, 0, 0, $x, $y, imagesx($this->image), imagesy($this->image));
        $this->image = $new;
    }
public function save( $location, $type='', $quality=100 )
    {
        $type = ( $type == '' ) ? $this->type : $type;
        if( $type == IMAGETYPE_JPEG ) 
        {
            if (!imagejpeg( $this->image, $location, $quality)) { // error happened
                    return false;
            }
        } 
        elseif( $type == IMAGETYPE_GIF ) 
        {
            if (!imagegif( $this->image, $location )) {
                return false;   
            }
        } 
        elseif( $type == IMAGETYPE_PNG ) 
        {
            if (!imagepng( $this->image, $location )) {
                    return false;
            }
        }
        return true;
    }

我应该在上传构造函数中实例化齿轮吗?我应该把工人放在哪里?我不知道将Gearman Client在哪里完成上传或调整大小的任务

如果有人能阐明这个主题。

使用ImageMagick在Gearman网站上有一个示例脚本。您可能想看看他们是如何完成的。

相关内容

  • 没有找到相关文章

最新更新