query("SELECT file_type, file_md5 FROM ".PRFX."download_files WHERE id_file = '".intval($_GET['id_image'])."'"); list ($_type,$_key) = $DB->next_record(); $_type = mb_strtolower($_type); if ($_type == 'gif' || $_type == 'jpg' || $_type == 'jpeg' || $_type=='png') $_GET['key'] = $_key; } if (file_exists($_SERVER['DOCUMENT_ROOT']."/_download/".$_GET['key'])){ $DB->query("SELECT file_type FROM ".PRFX."download_files WHERE file_md5 LIKE '".$_GET['key']."'"); $a=$DB->next_record(); $_type = mb_strtolower($a['file_type']); switch ($_type){ case 'gif'; $ip=imageCreateFromGif($_SERVER["DOCUMENT_ROOT"]."/_download/".$_GET['key']); break; case 'jpg': case 'jpeg': $ip=imageCreateFromJpeg($_SERVER["DOCUMENT_ROOT"]."/_download/".$_GET['key']); break; case 'png': $ip=imageCreateFromPng($_SERVER["DOCUMENT_ROOT"]."/_download/".$_GET['key']); break; } $s_w=imageSX($ip); $s_h=imageSY($ip); $new_w=$_GET['width']; $new_h=ceil($s_h*$new_w)/$s_w; $im=imagecreatetruecolor($_GET['width'],$_GET['height']); $white=imagecolorAllocate($im,255,255,255); $black=imagecolorAllocate($im,0,0,0); // если картинка оказалась больше height if ($new_h>$_GET['height']){ $x_r=ceil(($new_h-$_GET['height'])/2); // разница маленьких картинок $g_x_r=ceil(($x_r*$s_w)/$new_w); // начала координаты $g_len=$s_h-2*$g_x_r; // длина с картинки оригинала imagecopyresampled($im,$ip,0,0,0,$g_x_r,$new_w,$_GET['height'],$s_w,$g_len); } else { // заливаем белым цветом imageFilledRectangle($im,0,0,$_GET['width'],$_GET['height'],$white); // определяем начало координаты $coord_y=ceil(($_GET['height']-$new_h)/2); imagecopyresampled($im,$ip,0,$coord_y,0,0,$new_w,$new_h,$s_w,$s_h); } if ($_GET['border']){ preg_match("/(\w{2})(\w{2})(\w{2})/is",$_GET['border'],$_find); if (strval($_find[1]) && strval($_find[2]) && strval($_find[3])){ $color_border = ImageColorAllocate($im,base_convert($_find[1],"16","10"),base_convert($_find[2],"16","10"),base_convert($_find[3],"16","10")); imageline ($im,0,0,$_GET['width'],0,$color_border); imageline ($im,0,0,0,$_GET['height'],$color_border); imageline ($im,($_GET['width']-1),0,($_GET['width']-1),$_GET['height'],$color_border); imageline ($im,0,($_GET['height']-1),($_GET['width']-1),($_GET['height']-1),$color_border); } } header ("Content-type: image/jpeg"); imageJpeg($im,false,100); imagedestroy($im); } ?>