Code: Select all
<!DOCTYPE html>
<html>
<body>
<form action="minecrafttominetestskinconverter.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
<?php
// File Uploader
$target_dir = "skinuploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
// Convert Minecraft 1.8+ skin to 1.7-/Minetest skin.
// From Robbie Ferguson // www.baldnerd.com
// Requires PHP, GD
// By default outputs png to browser window AND saves a file for future use. Edit below to change behaviour.
// v1.1
// $input = './uploads/player_RobbieF.png'; // your 1.8 skin file
// $output = 'newskin.png'; // your new 1.7/Minetest skin file
$newskin = basename($_FILES["fileToUpload"]["name"])
$input = './skinuploads/"fileToUpload"'; // your 1.8 skin file
$output = './convertedskins/"fileToUpload"'; // your new 1.7/Minetest skin file
// Create image instances
$src = imagecreatefrompng($input);
$dest = imagecreatetruecolor(64, 32);
// Make it transparent
imagesavealpha($dest, true);
$trans_colour = imagecolorallocatealpha($dest, 0, 0, 0, 127);
imagefill($dest, 0, 0, $trans_colour);
// Learn the dimensions of the input image
$size = getimagesize($input);
if ($size[0] == 64 && $size[1] == 64) { // it has Minecraft 1.8 skin dimensions - convert!
// Copy - Syntax is Dest X,Y, Source X,Y, Width,Height
// Head
imagecopy($dest, $src, 0,0, 0,0, 32,16);
// Head overlay
imagecopy($dest, $src, 0,0, 32,0, 32,16);
// Right leg, Body, Right Arm
// The Leg and Arm become both left and right in 1.7-
// We'll simply discard the left arm and leg since it's not used.
// If you have an overlay on your left arm/leg but not right arm/leg, you might want to edit your skin since that will be discarded.
imagecopy($dest, $src, 0,16, 0,16, 64,16);
// Leg, Body and Arm overlay
imagecopy($dest, $src, 0,16, 0,32, 64,16);
} else { // already compatible. Just copy it.
imagecopy($dest, $src, 0,0, 0,0, 64,32);
}
// Output to browser
header('Content-Type: image/png');
imagepng($dest);
// Save to a file
imagepng($dest,$output,0); // 0-9. 0=faster, 9=smaller.
// Free up memory
imagedestroy($dest);
imagedestroy($src);
?>