Guest User

mcskin.php

a guest
Sep 27th, 2012
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.74 KB | None | 0 0
  1. <?php if(!defined('DEFINE_INDEX_FILE')){if(headers_sent()){echo '<header><meta http-equiv="refresh" content="0;url=../"></header>';}else{header('HTTP/1.0 301 Moved Permanently'); header('Location: ../');} die("<font size=+2>Access Denied!!</font>");}
  2.  
  3.  
  4. function getDefaultSkin(){
  5. // default skin
  6. return(base64_decode(
  7. 'iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAMAAACVQ462AAAABGdBTUEAALGPC/xhBQAAAwBQTFRFAAAAHxALIxcJJBgIJBgKJhgL'.
  8. 'JhoKJxsLJhoMKBsKKBsLKBoNKBwLKRwMKh0NKx4NKx4OLR0OLB4OLx8PLB4RLyANLSAQLyIRMiMQMyQRNCUSOigUPyoVKCgoPz8/'.
  9. 'JiFbMChyAFtbAGBgAGhoAH9/Qh0KQSEMRSIOQioSUigmUTElYkMvbUMqb0UsakAwdUcvdEgvek4za2trOjGJUj2JRjqlVknMAJmZ'.
  10. 'AJ6eAKioAK+vAMzMikw9gFM0hFIxhlM0gVM5g1U7h1U7h1g6ilk7iFo5j14+kF5Dll9All9BmmNEnGNFnGNGmmRKnGdIn2hJnGlM'.
  11. 'nWpPlm9bnHJcompHrHZaqn1ms3titXtnrYBttIRttolsvohst4Jyu4lyvYtyvY5yvY50xpaA////AAAAAAAAAAAAAAAAAAAAAAAA'.
  12. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
  13. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
  14. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
  15. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
  16. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
  17. 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
  18. 'PSUN6AAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////'.
  19. '////////////////////////////////////////////////////////////////////////////////////////////////////'.
  20. '////////////////////////////////////////////////////////////////////////////////////////////////////'.
  21. '////////////////////////////////////////////////////////AFP3ByUAAAAYdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2'.
  22. 'My4zNqnn4iUAAAKjSURBVEhLpZSLVtNAEIYLpSlLSUITLCBaGhNBQRM01M2mSCoXNUURIkZFxQvv/wz6724Wij2HCM7J6UyS/b+d'.
  23. 'mZ208rsww6jiqo4FhannZb5yDqjaNgDVwE/8JAmCMqF6fwGwbU0CKjD/+oAq9jcM27gxAFpNQxU3Bwi9Ajy8fgmGZuvaGAcIuwFA'.
  24. '12CGce1jJESr6/Ot1i3Tnq5qptFqzet1jRA1F2XHWQFAs3RzwTTNhQd3rOkFU7c0DijmohRg1TR9ZmpCN7/8+PX954fb+sTUjK7V'.
  25. 'LKOYi1IAaTQtUrfm8pP88/vTw8M5q06sZoOouSgHEDI5vrO/eHK28el04yxf3N8ZnyQooZiLfwA0arNb6d6bj998/+vx8710a7bW'.
  26. '4E2Uc1EKsEhz7WiQBK9eL29urrzsB8ngaK1JLDUXpYAkGSQH6e7640fL91dWXjxZ33138PZggA+Sz0WQlAL4gmewuzC1uCenqXev'.
  27. 'MPWc9XrMX/VXh6Hicx4ByHEeAfRg/wtgSMAvz+CKEkYAnc5SpwuD4z70PM+hUf+4348ixF7EGItjxmQcCx/Dzv/SOkuXAF3PdT3G'.
  28. 'IujjGLELNYwxhF7M4oi//wsgdlYZdMXCmEUUSsSu0OOBACMoBTiu62BdRPEjYxozXFyIpK7IAE0IYa7jOBRqGlOK0BFq3Kdpup3D'.
  29. 'thFwP9QDlBCGKEECoHEBEDLAXHAQMQnI8jwFYRQw3AMOQAJoOADoAVcDAh0HZAKQZUMZdC43kdeqAPwUBEsC+M4cIEq5KEEBCl90'.
  30. 'mR8CVR3nxwCdBBS9OAe020UGnXb7KcxzPY9SXoEEIBZtgE7UDgBKyLMhgBS2YdzjMJb4XHRDAPiQhSGjNOxKQIZTgC8BiMECgarx'.
  31. 'prjjO0OXiV4MAf4A/x0nbcyiS5EAAAAASUVORK5CYII='
  32. ));
  33. }
  34.  
  35.  
  36. function FlipImage(&$img){
  37. $size_x = imagesx($img);
  38. $size_y = imagesy($img);
  39. $temp = imagecreatetruecolor($size_x, $size_y);
  40. $x = imagecopyresampled($temp, $img, 0, 0, ($size_x-1), 0, $size_x, $size_y, 0-$size_x, $size_y);
  41. return $temp;
  42. }
  43.  
  44.  
  45. // render skin (head / body / back)
  46. function RenderSkin($data, $view='head', $cache=TRUE){
  47. if($view != 'body' && $view != 'back') $view = 'head';
  48. // create image
  49. $source = imagecreatefromstring($data);
  50. if($view == 'head')
  51. $rendered = imagecreatetruecolor(60, 60);
  52. else // body or back
  53. $rendered = imagecreatetruecolor(120, 240);
  54. $b = 60;
  55. $s = 8;
  56. // fill new image with pink
  57. $pink = imagecolorallocate($rendered, 255, 0, 255);
  58. imagefilledrectangle($rendered, 0, 0, 120, 240, $pink);
  59. // set transparent color
  60. if($view != 'head')
  61. imagecolortransparent($rendered, $pink);
  62. // create flipped version
  63. $fsource = FlipImage($source);
  64. // imagecopyresampled( dst_image , src_image , dst_x , dst_y , src_x , src_y , dst_w , dst_h , src_w , src_h )
  65.  
  66. // full body
  67. if($view == 'body'){
  68. // head
  69. imagecopyresampled($rendered, $source, $b / 2, 0, $s, $s, $b, $b, $s, $s);
  70. // head accesory
  71. imagecopyresampled($rendered, $source, $b / 2, 0, $s * 5, $s, $b, $b, $s, $s);
  72. // body
  73. imagecopyresampled($rendered, $source, $b / 2, $b, $s * 2.5, $s * 2.5, $b, $b * 1.5, $s, $s * 1.5);
  74. // left arm
  75. imagecopyresampled($rendered, $source, $b * 1.5, $b, $s * 5.5, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  76. // right arm
  77. imagecopyresampled($rendered, $fsource, 0, $b, $s * 2, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  78. // left leg
  79. imagecopyresampled($rendered, $source, $b / 2, $b * 2.5, $s / 2, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  80. // right leg
  81. imagecopyresampled($rendered, $fsource, $b * 1, $b * 2.5, $s * 7, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  82.  
  83. // full back
  84. } elseif($view == 'back'){
  85. // head
  86. imagecopyresampled($rendered, $source, $b / 2, 0, $s * 3, $s, $b, $b, $s, $s);
  87. // head accesory
  88. imagecopyresampled($rendered, $source, $b / 2, 0, $s * 7, $s, $b, $b, $s, $s);
  89. // body
  90. imagecopyresampled($rendered, $source, $b / 2, $b, $s * 4, $s * 2.5, $b, $b * 1.5, $s, $s * 1.5);
  91. // left arm
  92. imagecopyresampled($rendered, $source, $b * 1.5, $b, $s * 6.5, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  93. // right arm
  94. imagecopyresampled($rendered, $fsource, 0, $b, $s * 1, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  95. // left leg
  96. imagecopyresampled($rendered, $source, $b * 1, $b * 2.5, $s * 1.5, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  97. // right leg
  98. imagecopyresampled($rendered, $fsource, $b / 2, $b * 2.5, $s * 6, $s * 2.5, $b / 2, $b * 1.5, $s / 2, $s * 1.5);
  99.  
  100. // head only
  101. }else{
  102. // head
  103. imagecopyresampled($rendered, $source, 0, 0, $s, $s, $b, $b, $s, $s);
  104. }
  105.  
  106. // browser cache 3 hours
  107. $expire_time = 3*60*60;
  108. if(!$cache) $expire_time = 0 - $expire_time;
  109. header('Cache-Control: private, max-age='.$expire_time.', pre-check='.$expire_time);
  110. header('Pragma: private');
  111. header('Expires: '.@date(DATE_RFC822,time() + $expire_time));
  112. // display rendered image
  113. header('Content-type: image/png');
  114. imagepng($rendered);
  115. imagedestroy($source);
  116. imagedestroy($rendered);
  117. exit();
  118. }
  119.  
  120.  
  121. $view = getVar('view');
  122. $username = getVar('user');
  123. $username = str_replace('\\', '', str_replace('/', '', htmlspecialchars($username) ));
  124. if(empty($username)){
  125. $data = getDefaultSkin();
  126. $cache = FALSE;
  127. }else{
  128. $data = @file_get_contents('http://www.minecraft.net/skin/'.$username.'.png');
  129. $cache = TRUE;
  130. if($data == FALSE) {$data = getDefaultSkin(); $cache = FALSE;}
  131. }
  132. // display head only
  133. RenderSkin($data, @$_GET['view'], $cache);
  134. exit();
  135.  
  136.  
  137. ?>
Advertisement
Add Comment
Please, Sign In to add comment