背景图使用1080*1920为准进行编写,单看效果请使用1080*1920大小的背景图进行测试,其他图片大小不限大小
// 加载背景图片
$background = imagecreatefromjpeg('public/poster/job/1.jpg');
$backgroundWidth = imagesx($background);
$backgroundHeight = imagesy($background);
// 创建白色图层
$whiteLayerWidth = $backgroundWidth * 0.9;
$whiteLayerHeight = 380;
$whiteLayer = imagecreatetruecolor($whiteLayerWidth, $whiteLayerHeight);
$white = imagecolorallocate($whiteLayer, 255, 255, 255);
imagefill($whiteLayer, 0, 0, $white);
// 白色图层上绘制圆角
$roundedCorners = 50; // 设置圆角的大小
// 绘制左上角圆角
imagefilledellipse($whiteLayer, $roundedCorners, $roundedCorners, $roundedCorners * 2, $roundedCorners * 2, imagecolorallocatealpha($whiteLayer, 0, 0, 0, 127));
// 绘制右上角圆角
imagefilledellipse($whiteLayer, $whiteLayerWidth - $roundedCorners, $roundedCorners, $roundedCorners * 2, $roundedCorners * 2, imagecolorallocatealpha($whiteLayer, 0, 0, 0, 127));
// 绘制左下角圆角
imagefilledellipse($whiteLayer, $roundedCorners, $whiteLayerHeight - $roundedCorners, $roundedCorners * 2, $roundedCorners * 2, imagecolorallocatealpha($whiteLayer, 0, 0, 0, 127));
// 绘制右下角圆角
imagefilledellipse($whiteLayer, $whiteLayerWidth - $roundedCorners, $whiteLayerHeight - $roundedCorners, $roundedCorners * 2, $roundedCorners * 2, imagecolorallocatealpha($whiteLayer, 0, 0, 0, 127));
// 职位名称
$textColor = imagecolorallocate($whiteLayer, 0, 0, 0); // 黑色文字
$fontFile = 'public/poster/font.ttf'; //
$text = '跟单文员';
$textSize = 30; // 文字大小
$textX = 50;// 位于白色配图层的文字Y坐标
$textY = 100;// 位于白色配图层的文字X坐标
imagettftext($whiteLayer, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
$textColor = imagecolorallocate($whiteLayer, 239, 153, 113); // 橙色文字
$text = '4.5K~5.5K';
$textSize = 30; // 文字大小
$textX = $whiteLayerWidth - 250;// 位于白色配图层的文字Y坐标
$textY = 100;// 位于白色配图层的文字X坐标
imagettftext($whiteLayer, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
// 职位基础需求
$textColor = imagecolorallocate($whiteLayer, 106, 106, 106); // 灰色文字
$text = '全职 | 大专 | 经验不限';
$textSize = 30; // 文字大小
$textX = 50;// 位于白色配图层的文字Y坐标
$textY = 170;// 位于白色配图层的文字X坐标
imagettftext($whiteLayer, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
// 加载并调整logo图片大小
$logo = imagecreatefromjpeg('public/poster/empty_logo.jpg');
$logoWidth = imagesx($logo);
$logoHeight = imagesy($logo);
// 创建一个新的图像资源给logo使用
$logoDstW = 150;
$logoDstH = 150;
$resizedLogo = imagecreatetruecolor($logoDstW, $logoDstH);
// 调整logo图片大小
imagecopyresampled($resizedLogo, $logo, 0, 0, 0, 0, $logoDstW, $logoDstH, $logoWidth, $logoHeight);
// 销毁原始logo资源
imagedestroy($logo);
$logoX = 50;
$logoY = 200;
imagecopy($whiteLayer, $resizedLogo, $logoX, $logoY, 0, 0, $logoDstW, $logoDstH);
// 企业名称
$textColor = imagecolorallocate($whiteLayer, 0, 0, 0); // 黑色文字
$fontFile = 'public/poster/font.ttf'; //
$text = '远创人力资源管理集...';
$textSize = 35; // 文字大小
$textX = 210;// 位于白色配图层的文字Y坐标
$textY = 250;// 位于白色配图层的文字X坐标
imagettftext($whiteLayer, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
// 企业地址
$textColor = imagecolorallocate($whiteLayer, 106, 106, 106); // 灰色文字
$text = '安徽/合肥/瑶海区';
$textSize = 25; // 文字大小
$textX = 210;// 位于白色配图层的文字Y坐标
$textY = 310;// 位于白色配图层的文字X坐标
imagettftext($whiteLayer, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
// 加载并调整二维码图片大小
$qrCode = imagecreatefrompng('public/poster/qr.png');
$qrCodeWidth = imagesx($qrCode);
$qrCodeHeight = imagesy($qrCode);
// 创建一个新的图像资源给qrCode使用
$qrCodeDstW = 200;
$qrCodeDstH = 200;
$resizedLogo = imagecreatetruecolor($qrCodeDstW, $qrCodeDstH);
// 调整qrCode图片大小
imagecopyresampled($resizedLogo, $qrCode, 0, 0, 0, 0, $qrCodeDstW, $qrCodeDstH, $qrCodeWidth, $qrCodeHeight);
// 销毁原始qrCode资源
imagedestroy($qrCode);
$qrCodeX = $whiteLayerWidth - 250;
$qrCodeY = 120;
imagecopy($whiteLayer, $resizedLogo, $qrCodeX, $qrCodeY, 0, 0, $qrCodeDstW, $qrCodeDstH);
// 扫码二维码文字
$textColor = imagecolorallocate($whiteLayer, 106, 106, 106); // 灰色文字
$text = '长按识别二维码';
$textSize = 20; // 文字大小
$textX = $whiteLayerWidth - 250;// 位于白色配图层的文字Y坐标
$textY = 355;// 位于白色配图层的文字X坐标
imagettftext($whiteLayer, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
// 将白色图层合并到背景图片上
$yPosition = $backgroundHeight - $whiteLayerHeight - 100; // 底部留出100像素
imagecopy($background, $whiteLayer, ($backgroundWidth - $whiteLayerWidth) / 2, $yPosition, 0, 0, $whiteLayerWidth, $whiteLayerHeight);
// 在底部加上网站名称
$textColor = imagecolorallocate($whiteLayer, 255, 255, 255); // 白色文字
$text = '一颗大萝北';
$textSize = 20; // 文字大小
$textX = ($backgroundWidth / 2) - (mb_strlen($text) * $textSize);// 位于白色配图层的文字Y坐标
$textY = $backgroundHeight - 40;// 位于图层底部位置
imagettftext($background, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
$textColor = imagecolorallocate($whiteLayer, 255, 255, 255); // 白色文字
$text = 'secondar';
$textSize = 1;
$textX = 1;
$textY = 1;
imagettftext($background, $textSize, 0, $textX, $textY, $textColor, $fontFile, $text);
// 保存到text_image.png文件
imagepng($background, 'text_image.png');
// 清理资源
imagedestroy($background);
imagedestroy($whiteLayer);
imagedestroy($resizedLogo);
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
一颗大萝北
本文地址: PHP生成图片海报,使用GD库
本文地址: PHP生成图片海报,使用GD库