open($bg_image, $poster_data['bg_url']); $editor->resizeFit($bg_image, $poster_data['w'], $poster_data['h']); }else{ $bg_image = Grafika::createBlankImage($poster_data['w'],$poster_data['h']); //填充背景色 $editor->fill($bg_image ,new Color($poster_data['bg_color'])); } foreach($poster_data['items'] as $k => $v){ $type = $v['type']; switch($type){ case 'text': $default_font = 'static'.DIRECTORY_SEPARATOR.'font'.DIRECTORY_SEPARATOR.'SourceHanSansCN-Regular.ttf'; $editor->text($bg_image , $v['value'], $v['font_size'], $v['x'], $v['y'], new Color($v['font_color'], 0), $v['font'] ?: $default_font, $v['angle']); break; case 'image': $image_name = 'image'.$k; if(is_file($v['value'])){ $editor->open($image_name, $v['value']); $editor->resizeFit($image_name, $v['w'], $v['h']); $editor->blend( $bg_image, $image_name , 'normal', 1, 'top-left', $v['x'], $v['y']); } break; } } $editor->save($bg_image, $dir.'/'.$file_path); return $dir.'/'.$file_path; } }