個人手札:PHP 從 Minecraft 皮膚檔案中獲取頭像

sunxyw發表於2020-03-05
// 此處以 Skinme 皮膚站的皮膚為例
$skin = "http://www.skinme.cc/uniskin/textures/{$id}";
$skin = file_get_contents($skin);
$im = imagecreatefromstring($skin);
$size = 300; // 頭像尺寸
$view = 'f'; // 視角方向
// f: 正面
// b: 背面(後腦勺)
// l: 左側
// r: 右側
$av = imagecreatetruecolor($size, $size);
$x = array('f' => 8, 'l' => 16, 'r' => 0, 'b' => 24);

// 裁剪頭像
imagecopyresized($av, $im, 0, 0, $x[$view], 8, $size, $size, 8, 8);
// 修復 BUG
imagecolortransparent($im, imagecolorat($im, 63, 0));
// 新增頭飾
imagecopyresized($av, $im, 0, 0, $x[$view] + 32, 8, $size, $size, 8, 8);

header('Content-type: image/png');
imagepng($av);
imagedestroy($im);
imagedestroy($av);
exit();
本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章