/downloadTexture/downloadTexture.php |
@@ -0,0 +1,118 @@ |
<?php |
|
########################################################################### |
## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ## |
########################################################################### |
## This is a script that can be used to download a texture using Corrade ## |
## and the "download" Corrde command. ## |
########################################################################### |
|
if(!isset($_POST['uuid'])) return; |
|
$uuid = $_POST['uuid']; |
|
########################################################################### |
## CONFIGURATION ## |
########################################################################### |
|
# Set this to the name of the group. |
$GROUP = 'My Group'; |
# Set this to the group password. |
$PASSWORD = 'mypassword'; |
# Set this to Corrade's HTTP Server URL. |
$URL = 'http://corrade.hostname:8080'; |
|
########################################################################### |
## INTERNALS ## |
########################################################################### |
|
########################################################################### |
## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ## |
########################################################################### |
function wasKeyValueGet($key, $data) { |
return array_reduce( |
explode( |
"&", |
$data |
), |
function($o, $p) { |
$x = explode("=", $p); |
return array_shift($x) != $o ? $o : array_shift($x); |
}, |
$key |
); |
} |
|
#### |
# II. Download the map image as a PNG file. |
$params = array( |
'command' => 'download', |
'group' => $GROUP, |
'password' => $PASSWORD, |
'item' => $uuid, |
'type' => 'Texture', |
'format' => 'Png' |
); |
array_walk($params, |
function(&$value, $key) { |
$value = rawurlencode($key)."=".rawurlencode($value); |
} |
); |
$postvars = implode('&', $params); |
if (!($curl = curl_init())) { |
print 0; |
return; |
} |
curl_setopt($curl, CURLOPT_URL, $URL); |
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); |
curl_setopt($curl, CURLOPT_POST, true); |
curl_setopt($curl, CURLOPT_POSTFIELDS, $postvars); |
$return = curl_exec($curl); |
curl_close($curl); |
|
$success = urldecode( |
wasKeyValueGet( |
"success", |
$return |
) |
); |
|
if($success == 'False') { |
echo 'Unable to download texture: '.urldecode( |
wasKeyValueGet( |
"success", |
$return |
) |
); |
die; |
} |
|
#### |
# III. Convert the image data to a PNG of size 512x512 |
$im = imagescale( |
imagecreatefromstring( |
base64_decode( |
rawurldecode( |
wasKeyValueGet( |
"data", |
$return |
) |
) |
) |
), |
512, |
512 |
); |
|
#### |
# IV. Output the Base64 encoded image for AJAX. |
ob_start(); |
imagepng($im); |
$png = ob_get_contents(); |
imagedestroy($im); |
ob_end_clean(); |
|
echo base64_encode($png); |
|
?> |
|