Intervention/image的使用问题

Intervention/image的使用问题

先吐槽下,刚开始只是让我生成个名单,然后又让我加圆形的微信头像,现在又想让我把微信昵称的表情也显示处理。嗷嗷嗷~你痛快点不行吗?

1.问题描述:

微信昵称中含有一些特殊字符(如:表情),这个特殊字符能否使用Intervention/image的功能正常的显示出来。

我爱大可乐
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6

file 这是特殊符号显示的效果

4年前 评论
fatrbaby

跟库没关系,这是字体问题,找一款支持emoji的字体即可。

4年前 评论
我爱大可乐 (楼主) 4年前
shaonian1996 3年前

想问一下圆形头像问题怎么解决?没看到有这个api

4年前 评论
fatrbaby 4年前
lddtime 4年前
OneLove (作者) 4年前

圆形头像代码参考

<?php
    /**
     * 圆形头像.
     *
     * @see https://github.com/Intervention/image/issues/223
     *
     * @param int $width
     * @param int $height
     */
    protected function getCircleImg(int $width, int $height)
    {
        $circle = Image::canvas($width * 2, $height * 2, '#000');
        $circle = $circle->circle($width * 2 - 1, $width, $width, function ($draw) {
            $draw->background('#fff');
        });

        return $circle = $circle->resize($width, $height);
    }
?>
4年前 评论
陈伯乐 (作者) 4年前
OneLove 4年前
我爱大可乐 (楼主) 4年前
fatrbaby 4年前

圆形头像

$avatar_img = Img::make($avatar)->resize(185,185);
$r = $avatar_img->width() / 2;
$temp_image = Img::canvas(185, 185);

for ($x = 0; $x < $avatar_img->width(); $x++) {
    for ($y = 0; $y < $avatar_img->height(); $y++) {
        if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) < ($r * $r))) {
            $c = $avatar_img->pickColor($x, $y, 'array');
            $temp_image->pixel($c, $x, $y);
        }
    }
}
// 最终的 $temp_image 就是圆形头像
3年前 评论

文字居中:将文字转成图片

$font = new Font($me->name);
$font->file(storage_path("share.TTF"));
$font->size(48);
$font->color('ffffff');
$font->align('left');
$font->valign('top');

// 获取文字边界大小
$size = $font->getBoxSize();

// 生成文字为图片
$fontImage = Img::canvas($size['width'], $size['height']);
$font->applyToImage($fontImage);
// 最终的$fontImage
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!