В настоящее время я пытаюсь воспроизвести PNG в Laravel в качестве ответа, который представляется мне только как ресурс типа данных.И хотя я читаю текстуры скина Minecraft и хочу визуализировать голову игрока, я не могу получить контент, который будет распознан как PNG.Если я хочу отобразить изображение как ответ через Laravel, он всегда жалуется на тип, и если я разрешаю отображать его с помощью imagepng, он не доступен как настоящий mimetype в браузере.Код ниже
Метод головы:
public static function head($rawSkin, $scale = 1, $vertRot = 0, $horRot = 0, $helmet = true){
imagesavealpha($rawSkin, true);
//we don't need create new **transparent** image because we use the full image size
$canvas = imagecreatetruecolor(self::HEAD_SIZE * $scale, self::HEAD_SIZE * $scale);
imagecopyresampled($canvas, $rawSkin, 0 * $scale, 0 * $scale, 8, 8
, self::HEAD_SIZE * $scale, self::HEAD_SIZE * $scale, 8, 8);
return $canvas;
}
Метод загрузки кожи:
private function getImage($uuid){
$result = file_get_contents("https://sessionserver.mojang.com/session/minecraft/profile/".$uuid);
$result = json_decode($result);
$textures = $result->properties[0]->value;
$textures = json_decode(base64_decode($textures));
return imagecreatefrompng($textures->textures->SKIN->url);
}
Метод ответа:
function renderHeadByUUID(Request $request){
if(isset($request->uuid)){
header("Content-type: image/png");
imagepng(MinecraftSkins::head($this->getImage($request->uuid)));
}
}