Доброго времени суток.
На просторах интернета нашел скрипт.
Отрисовывает изображение из макета, использовав определенный части этого макета. Так понимаю с игры, но не суть.
Пытаюсь добавить это в компонент. Но при вставке в Joomla, на странице сайта результат выходит уже в виде текста, а не в картинке.
Хотя при обращении к скрипту напрямую, без joomla всё работает отлично.
<?php
$path_to_skin = 'outpost.png';
if ( !file_exists($path_to_skin) ) {
$path_to_skin = 'default.png';
}
$skin = imagecreatefrompng($path_to_skin);
$skin_size = getimagesize($path_to_skin);
$h = $skin_size[0];
$w = $skin_size[1];
$ratio = $h / 64;
$preview = imagecreatetruecolor(16 * $ratio, 32 * $ratio);
$alpha = imagecolorallocatealpha($preview, 255, 255, 255, 127);
imagefill($preview, 0, 0, $alpha);
//голова
imagecopy($preview, $skin, 4 * $ratio, 0 * $ratio, 8 * $ratio, 8 * $ratio, 8 * $ratio, 8 * $ratio);
//тело
imagecopy($preview, $skin, 4 * $ratio, 8 * $ratio, 20 * $ratio, 20 * $ratio, 8 * $ratio, 12 * $ratio);
//руки
imagecopy($preview, $skin, 0 * $ratio, 8 * $ratio, 44 * $ratio, 20 * $ratio, 4 * $ratio, 12 * $ratio);
_imageflip($preview, $skin, 12 * $ratio, 8 * $ratio, 44 * $ratio, 20 * $ratio, 4 * $ratio, 12 * $ratio);
//ноги
imagecopy($preview, $skin, 4 * $ratio, 20 * $ratio, 4 * $ratio, 20 * $ratio, 4 * $ratio, 12 * $ratio);
_imageflip($preview, $skin, 8 * $ratio, 20 * $ratio, 4 * $ratio, 20 * $ratio, 4 * $ratio, 12 * $ratio);
$zoom_k = 1 ;
$fullsize = imagecreatetruecolor(90 * $zoom_k, 180 * $zoom_k);
imagesavealpha($fullsize, true);
$alpha = imagecolorallocatealpha($fullsize, 255, 255, 255, 127);
imagefill($fullsize, 0, 0, $alpha);
imagecopyresized($fullsize, $preview, 0, 0, 0, 0, imagesx($fullsize), imagesy($fullsize), imagesx($preview), imagesy($preview));
header('Content-type: image/png');
imagepng($fullsize);
imagedestroy($preview);
imagedestroy($fullsize);
imagedestroy($skin);
if ( $path_to_cloak != false ) imagedestroy($cloak);
function _imageflip(&$result, &$img, $rx = 0, $ry = 0, $x = 0, $y = 0, $size_x = null, $size_y = null)
{
if ( $size_x < 1 ) $size_x = imagesx($img);
if ( $size_y < 1 ) $size_y = imagesy($img);
imagecopyresampled($result, $img, $rx, $ry, ($x + $size_x-1), $y, $size_x, $size_y, 0-$size_x, $size_y);
}
?>