PosterRepository.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/6/20
  6. * Time: 16:50
  7. */
  8. namespace App\Repositories;
  9. use Faker\Provider\Image;
  10. use Intervention\Image\ImageManagerStatic;
  11. use Illuminate\Support\Facades\Storage;
  12. class PosterRepository
  13. {
  14. public $main;
  15. public function __construct($mainImg)
  16. {
  17. if (extension_loaded('imagick')) {
  18. ImageManagerStatic::configure(['driver'=>'imagick']);
  19. }
  20. $this->main = ImageManagerStatic::make($mainImg);
  21. return $this->main->encoded;
  22. }
  23. /**
  24. * 分享帖子生成海报
  25. */
  26. public function post($userInfo, $id)
  27. {
  28. // return $this->main->response();
  29. // 设置头像
  30. if(!$userInfo['avatar']){
  31. $userInfo['avatar'] = 'https://wx.qlogo.cn/mmopen/vi_32/DYAIOgq83ep3asJn8emiat1MnPdviaPNroWY3f65y5ezkTAk2qtibv7ea9Ht9R2ahxr9bicY1DIj5vN5FibpDOwXegg/132';
  32. }
  33. $avatarurl = ImageManagerStatic::make($userInfo['avatar'])->fit(80, 80);
  34. $image = $this->main->insert($avatarurl, 'left-top', 40, 309*2);
  35. $path = '/public/post'.$id.'.png';
  36. $image->save($path);
  37. //$url = config('filesystems.disks.oss.uri').$path;
  38. // 存储图片
  39. $url = Storage::put($path, $image->basePath());
  40. return $url;
  41. }
  42. }