Ответный ресурс Laravel png - PullRequest
0 голосов
/ 08 марта 2019

В настоящее время я пытаюсь воспроизвести 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)));
        }
    }
...