codeinc / watermarker-client
watermarker服务的PHP客户端
v1.1
2024-02-24 01:17 UTC
Requires
- php: >=8.3
- php-http/discovery: ^1.19
- php-http/multipart-stream-builder: ^1.3
- psr/http-client: ^1.0
Requires (Dev)
- php-http/guzzle7-adapter: ^1.0
- phpunit/phpunit: ^11
- spatie/ray: ^1.41
README
此仓库包含一个用于使用watermarker服务添加水印图像的PHP 8.2+客户端库。
安装
安装此库的推荐方法是使用Composer
composer require codeinc/watermarker-client
用法
此客户端需要一个正在运行的watermarker服务实例。该服务可以通过Docker本地运行使用Docker或在服务器上部署。
示例
将水印应用到图像并显示结果的简单场景
use CodeInc\WatermarkerClient\WatermarkerClient; use CodeInc\WatermarkerClient\Exception; $apiBaseUri = 'http://localhost:3000/'; $anImage = '/path/to/local/image.png'; $theWatermark = '/path/to/local/watermark.png'; try { $client = new WatermarkerClient($apiBaseUri); // apply the watermark $watermarkedImageStream = $client->apply( $client->createStreamFromFile($anImage), $client->createStreamFromFile($theWatermark), ); // display the watermarked image header('Content-Type: image/png'); echo (string)$watermarkedImageStream; } catch (Exception $e) { // handle exception }
将水印应用到图像并带有选项的更复杂场景,将结果保存到文件中
use CodeInc\WatermarkerClient\WatermarkerClient; use CodeInc\WatermarkerClient\ConvertOptions; use CodeInc\WatermarkerClient\Position; use CodeInc\WatermarkerClient\Format; $apiBaseUri = 'http://localhost:3000/'; $theImageStream = '/path/to/local/image.png'; $theWatermarkStream = '/path/to/local/watermark.png'; $theDestinationFile = '/path/to/local/destination.png'; $convertOption = new ConvertOptions( size: 50, position: Position::topRight, format: Format::jpg, quality: 80, blur: 3, opacity: 75 ); try { $streamFactory = Psr17FactoryDiscovery::findStreamFactory(); $client = new WatermarkerClient($apiBaseUri); // apply the watermark $watermarkedImageStream = $client->apply( $client->createStreamFromFile($theImageStream), $client->createStreamFromFile($theWatermarkStream), $convertOption ); // save the watermarked image $client->saveStreamToFile($watermarkedImageStream, $theDestinationFile); } catch (Exception $e) { // handle exception }
许可证
此库在MIT许可证下发布(见LICENSE
文件)。