Intervention/image的使用问题

Intervention/image的使用问题

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

1.问题描述:

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

我爱大可乐
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

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

3年前 评论
fatrbaby

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

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

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

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

圆形头像代码参考

<?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);
    }
?>
3年前 评论
陈伯乐 (作者) 3年前
OneLove 3年前
我爱大可乐 (楼主) 3年前
fatrbaby 3年前

圆形头像

$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年前 评论

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