>백엔드 개발 >PHP 튜토리얼 >WeChat 미니 프로그램 포스터 생성 기술의 PHP 구현

WeChat 미니 프로그램 포스터 생성 기술의 PHP 구현

WBOY
WBOY원래의
2023-06-01 08:33:052540검색

WeChat 미니 프로그램의 등장으로 많은 기업과 개인이 미니 프로그램의 홍보 및 마케팅에 관심을 갖기 시작했습니다. 미니 프로그램에서 포스터는 시청자를 유인하기 위한 수단으로 흔히 사용되는 필수 요소가 되었다.

그렇다면 포스터를 자동으로 생성하는 방법은 무엇일까요? 이 기사에서는 PHP를 사용하여 미니 프로그램을 개발하는 개발자를 위한 WeChat 미니 프로그램 포스터 생성에 대한 몇 가지 팁을 제공합니다.

1. 준비

먼저 위챗 공식 계정에서 미니 프로그램을 만들고, 개발자 센터에서 미니 프로그램의 AppID, AppSecret, access_token 등 정보를 얻어야 합니다.

다음으로 Apache 서버, PHP 및 GD 확장 라이브러리를 포함하여 서버에 PHP 환경을 설치하세요. GD 확장 라이브러리는 이미지 생성을 위한 PHP 확장입니다.

2. 미니 프로그램 코드 획득

포스터를 생성하려면 먼저 미니 프로그램에서 미니 프로그램 코드를 생성해야 합니다. 미니 프로그램 코드는 WeChat의 API를 호출하여 생성할 수 있습니다.

PHP에서는 cURL 함수를 사용하여 WeChat에서 제공하는 인터페이스를 호출하여 미니 프로그램 코드를 얻을 수 있습니다. 간단한 구현 코드는 다음과 같습니다.

$appid = '你的小程序AppID';
$secret = '你的小程序AppSecret';
$path = '你的页面路径'; // 注意 一定要是已经发布的小程序页面,否则获取失败

// 获取 access_token
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret;
$response = curl_request($url);
$result = json_decode($response, true);
$access_token = $result['access_token'];

// 获取小程序码
$url = 'https://api.weixin.qq.com/wxa/getwxacode?access_token='.$access_token;
$params = array(
  'path' => $path,
  'width' => 430
);
$response = curl_request($url, 'POST', json_encode($params), array('Content-Type:application/json'));

// 保存小程序码
file_put_contents('path/to/save/wxacode.jpg', $response);

위 코드에서는 WeChat API를 호출하여 미니 프로그램의 access_token을 획득하고 생성하는 API 호출 시 생성된 QR 코드의 페이지 경로와 너비를 전달합니다. 미니 프로그램 코드. 다음으로, 나중에 사용할 수 있도록 획득한 애플릿 코드를 서버에 저장합니다.

3. GD 확장 라이브러리를 사용하여 포스터 생성

애플릿 코드를 얻은 후 PHP의 GD 확장 라이브러리를 사용하여 포스터로 합성해야 합니다. GD 확장 라이브러리를 사용하면 PHP가 이미지를 합성하고 텍스트와 모양을 추가하는 등의 작업을 수행할 수 있습니다. 이는 PHP가 이미지를 생성하는 데 사용되는 일반적인 확장 라이브러리입니다.

GD 확장 라이브러리를 사용하려면 PHP에서 GD 확장 라이브러리를 활성화해야 합니다.

PHP.ini 파일에서 "extension=php_gd2.dll" 또는 "extension=gd.so" 키워드를 검색하고 이 줄의 주석 처리를 제거하여 확장 라이브러리를 활성화할 수 있습니다. 또는 아래와 같이 코드에서 Extension_loaded() 함수를 호출하여 GD 확장 라이브러리가 로드되었는지 확인합니다.

if (!extension_loaded('gd')) {
  // GD 扩展库未加载
} else {
  // GD 扩展库已加载
}

다음으로 파일 경로, 파일 경로 등 세 가지 매개 변수를 허용하는 create_poster() 함수를 정의합니다. 애플릿 코드와 생성된 포스터 파일을 반환하는 파일 경로입니다. create_poster() 함수에서는 지정된 파일 경로로 템플릿을 로드하고 GD 확장 라이브러리를 사용하여 텍스트와 애플릿 코드를 추가한 다음 생성된 포스터를 지정된 경로에 저장합니다.

function create_poster($template, $wxacode, $output) {
  // 打开要生成的模版
  $bg_image = imagecreatefromjpeg($template);
  // 打开小程序码
  $wxacode_image = imagecreatefromstring(file_get_contents($wxacode));
  // 获取小程序码的宽高
  list($wxacode_width, $wxacode_height) = getimagesize($wxacode);

  // 创建新的画布
  $poster = imagecreatetruecolor(750, 1334);
  // 对图片进行重采样缩放
  imagecopyresampled($poster, $bg_image, 0, 0, 0, 0, 750, 1334, imagesx($bg_image), imagesy($bg_image));

  // 添加小程序码
  imagecopy($poster, $wxacode_image, 295, 810, 0, 0, $wxacode_width, $wxacode_height);

  // 添加文本
  $textColor = imagecolorallocate($poster, 255, 255, 255);
  $size = 24;
  $font = 'path/to/font.ttf';
  $text = '扫码进入小程序';
  imagettftext($poster, $size, 0, 187, 1133, $textColor, $font, $text);

  // 保存生成的海报
  imagejpeg($poster, $output, 80);
  // 释放内存
  imagedestroy($poster);
}

위 코드에서는 먼저 지정된 경로에서 템플릿 이미지를 열고 애플릿 코드를 로드한 다음 새 캔버스를 만들고 imagecopyresampled() 메서드를 사용하여 템플릿 이미지를 지정된 크기로 조정하고 imagecopy( ) 메소드는 캔버스에 작은 프로그램 코드를 추가합니다. 마지막으로 imagettftext() 메서드를 사용하여 캔버스에 텍스트를 추가하고 imagejpeg() 메서드를 사용하여 결과 포스터를 지정된 경로에 저장합니다.

4. 미니 프로그램에 포스터 추가

포스터를 생성한 후 미니 프로그램에 추가할 수 있습니다.

다음과 유사한 코드를 사용하여 미니 프로그램이 생성된 포스터를 표시하도록 할 수 있습니다.

// 在 wxml 中添加 image 组件
<image src="{{posterImageUrl}}"></image>

// 在 js 中,设置海报图片的路径(posterImageUrl 是我们在 wxml 中绑定的变量名)
this.setData({
  posterImageUrl: 'path/to/generated/poster.jpg'
});

위 코드를 사용하여 미니 프로그램에 생성된 포스터를 표시합니다.

요약

이 기사에서는 미니 프로그램 코드 얻기, GD 확장 라이브러리를 사용하여 포스터 생성, 미니 프로그램에 포스터 추가 등 PHP를 사용하여 WeChat 미니 프로그램 포스터를 생성하는 기술을 설명했습니다.

위의 기술을 통해 미니 프로그램 코드 및 기타 요소가 포함된 포스터를 쉽게 생성할 수 있어 미니 프로그램의 마케팅 및 홍보 효과가 향상됩니다.

위 내용은 WeChat 미니 프로그램 포스터 생성 기술의 PHP 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.