Gravatar:有默认图片吗?

Posted

技术标签:

【中文标题】Gravatar:有默认图片吗?【英文标题】:Gravatar : Is there a default image? 【发布时间】:2010-04-21 14:28:45 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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

或者没有哈希:

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

或者不带d参数:

http://www.gravatar.com/avatar

来源:gravatar.com。

【讨论】:

通常这也是我的建议。但是,它不能满足他对某些用户未注册且没有拥有电子邮件地址的要求(因此无法对其进行哈希处理并将其发送到 Gravatar)。 嗯,奇怪。根据您链接到的 Gravatar 说明,哈希是必需的(不是可选的)。我想知道它的工作是设计还是巧合。但是,如果它有效,它肯定是另一种选择。 :) 大声笑......我刚刚意识到它也可以在没有任何东西的情况下工作...... :)【参考方案2】:

Gravatar 在此处描述默认图像的选项:http://en.gravatar.com/site/implement/images/

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

上面的图片是使用 url http://www.gravatar.com/avatar/?d=mp 创建的。请注意,电子邮件哈希字符串已被省略,但通常您会将其包含在请求中。

以上链接中列出的选项:

404:如果没有与电子邮件哈希关联的图像,则不加载任何图像,而是返回 HTTP 404(未找到文件)响应 mp:(神秘人物)一个简单的卡通风格人物轮廓(不因电子邮件哈希而异) identicon:基于电子邮件哈希的几何图案 monsterid:生成的具有不同颜色、面孔等的“怪物” wavatar:生成具有不同特征和背景的人脸 复古:生成的 8 位街机风格像素化面孔非常棒 robohash:生成的具有不同颜色、面孔等的机器人 空白:透明 PNG 图像(为演示目的在下面的 html 中添加了边框)

如您所愿,使用尺寸选项s=<pixels> 也会更改默认图像的尺寸。

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

感谢 @Alireza Rezaee 更新图像类型。

【讨论】:

感谢这帮了大忙!【参考方案3】:

您还可以为默认/备用头像使用自定义 URL。但是,自定义 URL 必须指向公开可用的图像,否则它不会显示。您可以learn more here 和gravatar.com。

这是我在处理 gravatar 图像时使用的 php 函数。

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
);

【讨论】:

【参考方案4】:

不是真的,不。那是缺少 Gravatar 服务的重点。它旨在让您的用户可以注册他们的电子邮件地址并将 gravatar 图像与其/他们相关联。然后,您的网站(和其他网站)可以查询 Gravatar 以返回与相关电子邮件地址相关联的图像。

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

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

【讨论】:

您的第二个答案可以让更改默认重力非常容易。大多数网站至少需要一个电子邮件地址,所以这是个好主意【参考方案5】:

对于那些只想链接到给定电子邮件图像的人(这不能解决 OP 的请求,但此页面在网络搜索中很突出):从几乎任何 POSIX shell 中,您都可以为“somebody”生成 256 像素的 gravatar URL @example.com" 与:

echo "http://gravatar.com/avatar/$(echo -n somebody@example.com | md5sum | awk 'print $1')?s=256"

您确实需要充分考虑将someone@example.com 替换为相关电子邮件。我加入了“?s=256”来展示如何指定大小。

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

【讨论】:

以上是关于Gravatar:有默认图片吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用gravatar生成头像

php 添加默认头像头像gravatar

WORDPRESS自定义默认GRAVATAR

如何在WordPress中设置自己的默认Gravatar

PHP 如何在WordPress中设置自己的默认Gravatar

从网页上保存图片到本地硬盘时的默认路径如何修改设置?