Image Gravatar:有默认图像吗?

Image Gravatar:有默认图像吗?,image,default,gravatar,Image,Default,Gravatar,我已经为我正在构建的门户实现了gravatar,我想知道gravatar是否有默认的图像URL?并非所有访问该网站的人都已登录或拥有电子邮件地址,在这种情况下,是否有可以显示的默认图像(可通过gravatar url访问)不,不。这是gravatar服务的一个要点。它的设计目的是让您的用户可以注册他们的电子邮件地址,并将gravatar图像与其关联。然后,您的站点(和其他站点)可以查询Gravatar以返回与所讨论的电子邮件地址相关联的图像 如果您希望为甚至没有在您的网站上输入电子邮件地址的用户

我已经为我正在构建的门户实现了gravatar,我想知道gravatar是否有默认的图像URL?并非所有访问该网站的人都已登录或拥有电子邮件地址,在这种情况下,是否有可以显示的默认图像(可通过gravatar url访问)

不,不。这是gravatar服务的一个要点。它的设计目的是让您的用户可以注册他们的电子邮件地址,并将gravatar图像与其关联。然后,您的站点(和其他站点)可以查询Gravatar以返回与所讨论的电子邮件地址相关联的图像

如果您希望为甚至没有在您的网站上输入电子邮件地址的用户显示图像,我可以看到两种解决方案:

  • 用你自己的代码来做。当您与没有电子邮件地址的用户打交道时,您可以只输出自己选择的默认图像。当然,这意味着这将不会使用gravatar地址来完成,这将是您需要为自己服务的东西
  • 为没有/输入自己的电子邮件地址的用户注册自己专用的电子邮件地址。例如,您可以注册类似于
    default的内容-gravatar@myapp.example.com
    然后向Gravatar服务注册此图像,并将您选择的默认图像与此图像关联。在构建图像URL时,您自己的应用程序代码仍需要输出相应的gravatar URL,以替换用户不存在的电子邮件地址,但这将允许您使用您要求的gravatar URL

  • 要选择默认图像,可以使用
    d
    参数:

    http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?d=identicon
    
    http://www.gravatar.com/avatar
    
    或者没有散列:

    http://www.gravatar.com/avatar/?d=identicon
    
    或不带
    d
    参数:

    http://www.gravatar.com/avatar/3b3be63a4c2a439b013787725dfce802?d=identicon
    
    http://www.gravatar.com/avatar
    

    来源:。

    Gravatar在此处描述默认图像的选项:

    您可以通过向url添加适当的名称/值对来选择所需的选项。例如,您可以使用“神秘人”(d=mp),如下所示:

    上面的图片是用url
    http://www.gravatar.com/avatar/?d=mp
    。请注意,电子邮件哈希字符串已被省略,但通常您会将其作为请求的一部分

    以上链接中列出的选项:

    • 404:如果没有图像与电子邮件哈希关联,则不要加载任何图像,而是返回HTTP 404(未找到文件)响应
    • mp:(神秘人物)一个简单的卡通风格的人物轮廓(不随电子邮件散列而变化)
    • identicon:基于电子邮件散列的几何模式
    • 怪物ID:生成的具有不同颜色、面孔等的“怪物”
    • wavatar:生成的具有不同特征和背景的面
    • 复古:令人敬畏的生成,8位拱廊风格的像素化面
    • robohash:生成的具有不同颜色、面孔等的机器人
    • 空白:一个透明的PNG图像(为了演示,在下面的HTML中添加了边框)
    正如您所希望的,使用size选项
    s=
    也会更改默认图像的大小

    上面的图像是用
    http://www.gravatar.com/avatar/?d=retro&s=32


    感谢提供更新的图像类型。

    您还可以为默认/备用化身使用自定义URL。但是,自定义URL必须指向公共可用的图像,否则将无法显示。你可以,至少

    这里是一个PHP函数,我在处理gravatar图像时使用它

    function myprefix_get_gravatar_url( $email, $default='mm', $size=92 )
    {
        $email = md5( strtolower( trim( $email ) ) );
        $default = urlencode( $default );
        $size = (int)$size;
    
        $url = 'http://www.gravatar.com/avatar/';
        if ( is_ssl() )
            $url = 'https://secure.gravatar.com/avatar/';
    
        return $url.$email."?d=".$default."&s=".$size;
    }
    
    用法示例:

    $img2x = myprefix_get_gravatar_url( 
        'spacepants@goofygoof.it',
        'https://www.google.com/images/srpr/logo11w.png',
        184
    );
    

    对于那些只想链接到给定电子邮件图像的用户(这并不能满足OP的请求,但此页面在web搜索中非常突出):几乎任何POSIX外壳都可以生成256像素的gravatar URL,用于“somebody@example.com“与:

    你确实需要考虑足够的东西来替换somebody@example.com有问题的邮件。我包括了“?s=256”以显示如何指定大小


    我需要这个来向某人说明什么是掘墓人。

    通常这也是我的建议。然而,这并不能满足他的要求,因为有些用户没有注册&没有电子邮件地址(因此无法散列并发送给Gravatar)。嗯,奇怪。根据链接到的Gravatar说明,哈希是必需的(不是可选的)。我不知道这是故意的还是巧合。不过,如果可行,这肯定是另一种选择。:)英雄联盟我刚刚意识到它也可以在没有任何东西的情况下工作…:)你的#2答案可以让更改默认引力变得非常容易。大多数网站都至少需要一个电子邮件地址,所以这是一个很好的主意,因为这很有帮助!