我正在尝试将已登录的用户ID(wordpress)添加到GD映像中。
当我使用常量时,它将正确显示png;调用变量时,它将显示断开的图像链接。
通过短代码调用完成呼叫:
/* ================== GET PIC USER ================== */
function get_pic_user($atts) {
$myphp_folder = get_stylesheet_directory_uri() . '/make-pic.php';
$html = '<img src="'.$myphp_folder.'" alt="Image created by a PHP script" width="1000" height="768" align="middle">';
return $html;
}
add_shortcode( 'display_get_pic_user', 'get_pic_user' );
make-pic.php背后的php是:
<?php
$user = wp_get_current_user();
$string_user = $user->id;
$im = imagecreatefrompng("../my_user_pic.png");
header("Content-type: image/png");
$color = imagecolorallocate($im, 51, 51, 51);
imagestring($im, 21, 500, 350, $string_user, $color);
imagepng($im);
imagedestroy($im);
exit;
这可行:
<?php
$string_user = 15;
$im = imagecreatefrompng("../my_user_pic.png");
这不是:
<?php
$user = wp_get_current_user();
$string_user = $user->id;
$im = imagecreatefrompng("../my_user_pic.png");
任何建议将不胜感激。
谢谢
答案 0 :(得分:0)
添加了多个REQUIRE和其他解决方案后,问题仍然明显。我想出的一个可行的解决方案是将IMAGEPNG添加到代码内联,但是使用OB_START / OB_GET_CLEAN。以下作品:
仍使用简短代码[display_get_pic_user]从页面调用图像。其背后的代码是:
function get_pic_user() {
$user = wp_get_current_user();
$string_user = $user->id;
$im = imagecreatefrompng("../my_user_pic.png");
$color = imagecolorallocate($im, 51, 51, 51);
imagestring($im, 21, 500, 350, $string_user, $color);
ob_start();
imagepng($im);
$rawImageBytes = ob_get_clean();
$html = "<img src='data:image/png;base64," . base64_encode( $rawImageBytes ) . "' align=middle/>";
imagedestroy($im);
return $html;
}
add_shortcode( 'display_get_pic_user', 'get_pic_user' );