<?php
$ur = $user['Skin'];
$filename = "img/Skins/" . $ur;
list($w, $h, $type, $attr) = getimagesize($filename);
$img = imagecreatefrompng($filename);
$src_im = imagecreatefrompng($filename);
$src_x = '30'; // begin x
$src_y = '45'; // begin y
$src_w = '40'; // width
$src_h = '35'; // height
$dst_x = '0'; // destination x
$dst_y = '0'; // destination y
$dst_im = imagecreatetruecolor($src_w, $src_h);
$white = imagecolorallocate($dst_im, 255, 255, 255);
imagefill($dst_im, 0, 0, $white);
imagecopy($dst_im, $src_im, $dst_x, $dst_y, $src_x, $src_y, $src_w, $src_h);
?>
<img src="<?php print_r(imagepng($dst_im)); ?>"/>
这应该做的是获取图像“皮肤”并剪掉头部,所以我的形象:
<img src="<?php print_r(imagepng($dst_im)); ?>"/>
应该只是皮肤的头部。但是,我得到了这种胡言乱语:
ù¬åä)BðÔ€Í〜Í
我该怎么做,我该如何解决?
谢谢!
答案 0 :(得分:1)
解决方案是使用您的php脚本作为src
标记的<img>
属性:
<强> yourScript.php 强>
...
$im = imagepng($dst_im);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
<强>标记强>
<img src="yourScript.php" alt="Some alt text">
答案 1 :(得分:1)
@ moonwave99答案是对的。 但是,如果你想从imagecopy函数获取图像base64数据,这是我所做的一个简单的例子。
我已经用它在图片上创建了水印。
<?php
function image_data_base64() {
$stamp = imagecreatefrompng('watermark.png');
$im = imagecreatefrompng('picture.png');
imagecopy($im, $stamp, imagesx($im) - imagesx($stamp) - 15, 15, 0, 0, imagesx($stamp), imagesy($stamp));
ob_start();
imagepng($im);
$image_data = ob_get_contents();
ob_end_clean();
return base64_encode($image_data);
}
?>
<img src="data:image/png;base64,<?php echo image_data_base64(); ?>" />
答案 2 :(得分:0)
你不能只输出那样的图像。这是图像的数据。您可以写入文件并使用相应的URI,或者您可以执行此操作
<img src="data:image/png;base64,<?php echo base64_encode(imagepng($dst_im)); ?>" />