images->large)) { unlink(NP_COVER); file_put_contents(NP_COVER_URL, ''); } elseif(!empty($np[0]->images->large) && $np[0]->images->large !== file_get_contents(NP_COVER_URL)) { unlink(NP_COVER); file_put_contents(NP_COVER_URL, $np[0]->images->large); file_put_contents(NP_COVER, file_get_contents($np[0]->images->large)); } } if(empty($np)) $np = json_decode(file_get_contents(NP_FILE)); $nowPlaying = is_array($np) && !empty($np[0]->nowplaying); $imagick = new Imagick; $imagick->newImage(SIG_WIDTH, SIG_HEIGHT, $ip_000, 'png'); $background = new Imagick('bg2.png'); $imagick->compositeImage($background, Imagick::COMPOSITE_COPY, 0, 0); $background->destroy(); $footer = new Imagick('footer.png'); $imagick->compositeImage($footer, Imagick::COMPOSITE_MATHEMATICS, 0, SIG_HEIGHT - $footer->getImageHeight()); $footer->destroy(); if($nowPlaying) { $npCover = new Imagick(is_file(NP_COVER) ? NP_COVER : NP_COVER_DEFAULT); $npCover->resizeImage(60, 60, Imagick::FILTER_CATROM, 0.9, true); $imagick->compositeImage($npCover, Imagick::COMPOSITE_COPY, SIG_WIDTH - 70, 10); $npCover->destroy(); } $imagickDraw = new ImagickDraw; $imagickDraw->setFillColor($ip_fff); $imagickDraw->setFont(FW_FONT_FAM); $imagickDraw->setFontSize(FW_FONT_SIZE); $imagickLogo = new Imagick(); $imagickLogo->newImage($imagick->getImageWidth(), $imagick->getImageHeight(), new ImagickPixel('none'), 'png'); $imagickLogo->annotateImage($imagickDraw, 15, 35, 0, FW_TEXT); $imagickShadow = clone $imagickLogo; $imagickShadow->shadowImage(80, 2, 0, 0); $imagickShadow->compositeImage($imagickLogo, Imagick::COMPOSITE_OVER, 4, 2); $imagickLogo->destroy(); $imagick->compositeImage($imagickShadow, Imagick::COMPOSITE_OVER, -4, -2); $imagickShadow->destroy(); $imagickDraw->setFont(NP_FONT_FAM); $imagickDraw->setFontSize(NP_FONT_SIZE); if($nowPlaying) { $imagick->annotateImage($imagickDraw, 40, 71, 0, sprintf('%s - %s', $np[0]->artist->name ?? '', $np[0]->name ?? '')); $imagickDraw->setFont(FA_FONT_FAM); $imagick->annotateImage($imagickDraw, 10, 71, 0, "\u{f001}"); } else { $imagick->annotateImage($imagickDraw, 10, 71, 0, "If it ain't broke, I'll break it"); } file_put_contents(SIG_STATIC, $imagick->getImageBlob()); } switch($_GET['p'] ?? '') { case 'album': $imagick->cropImage(SIG_HEIGHT, SIG_HEIGHT, SIG_WIDTH - SIG_HEIGHT, 0); break; case 'album1': $imagick->cropImage(SIG_HEIGHT, SIG_HEIGHT - 33, SIG_WIDTH - SIG_HEIGHT, 0); break; case 'album2': $imagick->cropImage(SIG_HEIGHT, 33, SIG_WIDTH - SIG_HEIGHT, SIG_HEIGHT - 33); break; case 'body': $imagick->cropImage(SIG_WIDTH - SIG_HEIGHT, SIG_HEIGHT, 0, 0); break; case 'body1': $imagick->cropImage(SIG_WIDTH - SIG_HEIGHT, SIG_HEIGHT - 33, 0, 0); break; case 'body2': $imagick->cropImage(SIG_WIDTH - SIG_HEIGHT, 33, 0, SIG_HEIGHT - 33); break; } header('Content-Type: image/png'); header('Cache-Control: max-age=' . SIG_AGE . ', public'); echo $imagick->getImageBlob(); $imagick->destroy();