示例#1
0
 protected function RunResize($action)
 {
     $args = Library::getResizeArgs($this->width, $this->height, $action['width'], $action['height'], $action['option']);
     if ($args === false) {
         return;
     }
     foreach ($this->frames as &$frame) {
         $newimage = imagecreatetruecolor($args['dst_w'], $args['dst_h']);
         $transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
         imagefill($newimage, 0, 0, $transparentindex);
         imagecopyresized($newimage, $frame['resource'], $args['dst_x'], $args['dst_y'], $args['src_x'], $args['src_y'], $args['dst_w'], $args['dst_h'], $args['src_w'], $args['src_h']);
         imagedestroy($frame['resource']);
         $frame['resource'] = $newimage;
     }
     $this->width = $args['dst_w'];
     $this->height = $args['dst_h'];
 }
示例#2
0
 protected function runResize($action)
 {
     $args = Library::getResizeArgs($this->width, $this->height, $action['width'], $action['height'], $action['option']);
     if ($args === false) {
         return;
     }
     $newimage = imagecreatetruecolor($args['dst_w'], $args['dst_h']);
     if ($this->format === 'png') {
         imagealphablending($newimage, false);
         imagesavealpha($newimage, true);
         $transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
         imagefill($newimage, 0, 0, $transparentindex);
     } else {
         if ($this->format === 'gif') {
             $transparentindex = imagecolorallocatealpha($newimage, 255, 255, 255, 127);
             imagefill($newimage, 0, 0, $transparentindex);
         }
     }
     imagecopyresampled($newimage, $this->resource, $args['dst_x'], $args['dst_y'], $args['src_x'], $args['src_y'], $args['dst_w'], $args['dst_h'], $args['src_w'], $args['src_h']);
     imagedestroy($this->resource);
     $this->resource = $newimage;
     $this->width = $args['dst_w'];
     $this->height = $args['dst_h'];
 }