| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace common\services;
- use common\components\dirUtil;
- use common\components\oss;
- use common\components\stringUtil;
- use linslin\yii2\curl;
- use yii\imagine\Image;
- use Yii;
- //图片相关接口
- class ImageService
- {
- //生成头像
- public static function generateAvatar($sjId, $url)
- {
- $month = date("Ym");
- $date = date("d");
- $path = dirUtil::getImgDir();
- $sjId = substr(md5($url), 0, 5);
- $middle = "wx/avatar/{$sjId}/{$month}/{$date}/";
- if (!file_exists($path . $middle)) {
- mkdir($path . $middle, 0777, true);
- }
- $rand = stringUtil::uniqueFileName();
- $middleName = md5($rand . $url);
- $name = $middleName . '.jpg';
- $fullFileName = $path . $middle . $name;
- $fileName = $middle . $name;
- $respond = oss::fileExist($fileName);
- if ($respond) {
- Yii::info('url' . $url . ' 已经创建过了');
- return $fileName;
- }
- $curl = new curl\Curl();
- $result = $curl->get($url);
- $fp = @fopen($fullFileName, 'a');
- fwrite($fp, $result);
- fclose($fp);
- Yii::info('url:' . $url);
- //上传oss
- oss::uploadImage($fileName, $fullFileName);
- $imgInfo = getimagesize($fullFileName);
- if (empty($imgInfo) || isset($imgInfo[0]) == false) {
- return '';
- }
- $width = $imgInfo[0];
- $height = $imgInfo[1];
- //生成小图 200px
- $smallWidth = 200;
- $smallHeight = ceil((200 * $height) / $width);
- if ($width <= 200) {
- $smallWidth = $width;
- $smallHeight = $height;
- }
- $smallFullPathFile = $path . $middle . $middleName . '_small.jpg';
- Image::thumbnail($fullFileName, $smallWidth, $smallHeight)->save($smallFullPathFile, ['quality' => 100]);
- oss::uploadImage($middle . $middleName . '_small.jpg', $smallFullPathFile);
- return $fileName;
- }
- }
|