View file social/sys/inc/scrmaker.php

File size: 3.56Kb
<?php
$pre_w = 120; // ширина превью изображения
$dir = array('tmp'=>H.'sys/tmp/', 'scr'=>'scr/'); // папки для временных файлов и скринов


function make_pre($dir_loads2,$file2)
{
	global $dir, $pre_w;
	$filename = $dir_loads2.'/'.$file2;
	$now = time();
	$xml = NULL;
	$scr_name = '';
	if(file_exists($filename))
	{
		$file = $filename;
		$archive = new Archive_Tar($filename);
		$xml = $archive -> extractInString('Theme.xml');
		if($xml === NULL)
		{
			$list = $archive -> listContent();
			if(is_array($list))
			{
				if(preg_match('/\.xml$/i', $list[$i]['filename']))
				{
					$xml = $archive -> extractInString($list[$i]['filename']);
					break;
				}
			}
		}
		if($xml !== NULL)
		{
			if((preg_match('#<Standby_image Source="(.*?)"/>#si', $xml, $res) or preg_match('#<Desktop_image Source="(.*?)"/>#si', $xml, $res)) and !empty($res[1])) $scr_name=$res[1];
			unset($res);
			if(!empty($scr_name) and preg_match('/[a-z0-9]{3,4}$/i', $scr_name, $res))
			{
				$scr_ext = strtolower($res[0]);
				$filename = $dir['tmp'].$now.rand(1,999) . '.' . $scr_ext;
				$fp = fopen($filename, 'wb');
				fputs($fp, $archive -> extractInString($scr_name));
				fclose($fp);
				@chmod($filename, 0666);
				$scr_stat = getimagesize($filename);
				
				if($scr_stat !== false)
				{
					if($scr_stat[0] > $pre_w)
					{
						switch($scr_stat[2])
						{
							case 1: //gif
							$i_scr = imagecreatefromgif($filename);
							break;
							case 2: //jpg
							$i_scr = imagecreatefromjpeg($filename);
							break;
							case 3: //png
							$i_scr = imagecreatefrompng($filename);
							break;
							default:
							$i_scr = '';
						}
						
						if(!empty($i_scr))
						{
							$ratio = $scr_stat[0] / $pre_w;
							$pre_h = round($scr_stat[1] / $ratio);
							$i_pre = imagecreatetruecolor($pre_w, $pre_h);
							imagecopyresampled($i_pre, $i_scr, 0, 0, 0, 0, $pre_w, $pre_h, $scr_stat[0], $scr_stat[1]);
							$color1 = imagecolorallocate($i_pre, 255,250,50);
							$color2 = imagecolorallocate($i_pre, 0,0,0);
							  ##### ###  ####
							$font = '../SYSTEM/images/a.ttf';
							$text = '.::ZonArt::.';
							//imagepstext($i_pre,$text,$font,10,$color1,$color2,4,130,1,2,0,20);
							//$logo=imagecreatefrompng('../style/logo.png');
							///imagecopy($i_pre, $logo, 65, 85, 0, 0, 51, 45);
							//imagecopy($i_pre, $logo, 0, 0, 0, 0, 120, 120);
							//imagedestroy($logo);
							//imagecolorallocatealpha($alpha,0,0,255,120);

							$data = explode('/', $file);
							$var = $data[(sizeof($data) - 1)];
							$var = preg_replace('/[a-z]{3,4}$/i', 'thm.JPG', $var);
							//header('Content-type: image/jpeg');
							$var = $dir['scr'] . $var;




							@chmod($var, 0777);
							//imagejpeg($i_pre, $var);
							$i_pre = img_copyright($i_pre); // копирайт

							imagejpeg($i_pre, $dir_loads2 . '/' . $file2 . '.JPG', 100);
							imagedestroy($i_pre);
							imagedestroy($i_scr);
							unlink($filename);
							return $var;
						}
						//else echo "<img src=\"../style/swf.jpg\" alt=\"SWF!\" /><br />\n";
					}
					else echo'ненадо преобразований<br />';
				}
				else echo'не изображение<br/>';
				unlink($filename);
			}
			else echo'не найдены изображения для создания скрина<br/>';
		}
		//else echo "<img src=\"../style/xml.jpg\" alt=\"XML не найден!\" /><br />\n";
	}
	else echo'файл не найден<br />';
	clearstatcache();
	return false;
}
?>