将用户的头像/Gravata动态转换为jpg或png

时间:2020-05-09 作者:Daniel Florian

有没有一种方法可以在飞行中将用户的坟墓/化身转换为jpg?我的职能如下:

get_avatar( $uid, 180 );
如果我用纯PHP调用它,它将返回用户的头像图像(即:<?php echo get_avatar( $uid, 180 ); ?> 但我想将生成的文件转换为jpeg/png图像,以便将其插入到FPDF函数中

干杯

1 个回复
最合适的回答,由SO网友:Brooke. 整理而成

这个get_avatar 函数返回包装在<img> 标签。在您的情况下,您需要使用get_avatar_url 仅获取所需图像的URL。

结合WordPress\'wp_remote_get 您可以将图像数据捕获到变量中,或将其保存为图像。

$user            = wp_get_current_user();
$gravatar_url    = get_avatar_url( $user->ID, [\'size\' => \'50\'] );
$gravatar_source = wp_remote_get( $gravatar_url );

if ( ! is_wp_error( $gravatar_source ) && 200 == $gravatar_source[\'response\'][\'code\'] ) {
    $filename      = sanitize_file_name( $user->ID . \'.jpg\' );
    $gravatar_file = fopen( \'tmp /\' . $filename, \'w\' );
    fwrite( $gravatar_file, $gravatar_source[\'body\'] );
    fclose( $gravatar_file );
}
此示例复制自this script 这在其他方面基本无关。

编辑:如果您只想将URL抓取到PHP变量中,可以执行以下操作:

$current_user = wp_get_current_user();
$userdata     = get_userdata( $current_user->ID );

$gravatar_url = \'https://www.gravatar.com/avatar/\' . md5( strtolower( trim( $userdata->user_email ) ) );

相关推荐

Column Images Showing Gaps

我正在使用带有Avada主题的Wordpress。在页面顶部,我有一个fusion滑块。下面我将设置一个包含2列的容器。我为每一列插入了一幅图像。我无法解决如何消除图像左右两侧的间隙(我需要它们转到屏幕边缘)以及融合滑块与下方两幅图像之间的间隙。谢谢