Eeann niaa??eo noaoe?aneea iaoiau aey ?aaiou n ecia?a?aieyie: * imgResize - nicaaieai oiaiuoaiiie eiiee ecia?a?aiey
* yoio eeann ianeaaoaony io nc_System * * @see nc_ImageTransform::imgResize() */ class nc_ImageTransform extends nc_System { protected static $_db; public static $big; public static $small; /** * * Nicaaao oiaiuoaiio? eiie? ecia?a?aiey * @access public * @static * @param string $src_img Ioou e enoiaiiio ecia?a?aie? * @param string $dest_img Ioou e nicaaaaaiiio ecia?a?aie? * @param int $width Oe?eia iiaiai ecia?a?aiey * @param int $height Aunioa iiaiai ecia?a?aiey * @param int $mode [optional] ?a?ei oiaiuoaiey: 0 - i?iii?oeiiaeuii oiaiuoaao; 1 - aienuaaao a oeacaiiua ?acia?u, ia?acay e?ay * @param string $format [optional] Oi?iao nicaaaaaiiai ecia?a?aiey (jpg, gif, png) * @param int $quality [optional] Ea?anoai n?aoey ecia?a?aiey (0-100) i?e $format=='jpg' * @return mixed A neo?aa ioeaee aica?aoeo false eia?a aica?aoeo ioou e nicaaiiiio oaeeo */ public static function imgResize($src_img, $dest_img, $width, $height, $mode=0, $format='jpg', $quality=90) { if (!file_exists($src_img)){ echo "$src_img - file not found
"; return false; } $img_size = getimagesize($src_img); if ($img_size === false) return false; $img_format = strtolower(substr($img_size['mime'], strpos($img_size['mime'], '/') + 1)); if (!function_exists($fn_imgcreatefrom = 'imagecreatefrom'.$img_format)) return false; $x_ratio = $width / $img_size[0]; $y_ratio = $height / $img_size[1]; $fn_extrem = $mode ? 'max' : 'min'; $ratio = $fn_extrem($x_ratio, $y_ratio); $new_width = $x_ratio == $ratio ? $width : floor($img_size[0] * $ratio); $new_height = $x_ratio != $ratio ? $height : floor($img_size[1] * $ratio); $new_left = $x_ratio == $ratio || !$mode ? 0 : floor(($width - $new_width) / 2); $new_top = $x_ratio != $ratio || !$mode ? 0 : floor(($height - $new_height) / 2); $gd_dest_img = imagecreatetruecolor($mode?$width:$new_width, $mode?$height:$new_height); $gd_src_img = $fn_imgcreatefrom($src_img); imagecopyresampled($gd_dest_img, $gd_src_img, $new_left, $new_top, 0, 0, $new_width, $new_height, $img_size[0], $img_size[1]); switch ($format) { case 'gif': imagegif ($gd_dest_img, $dest_img); break; case 'png': imagepng ($gd_dest_img, $dest_img); break; default: imagejpeg($gd_dest_img, $dest_img, $quality); break; } imagedestroy($gd_dest_img); imagedestroy($gd_src_img); return $dest_img; } /** * Ooieoee aey nicaaiey thumbnails aey iieae oeia oaee, * a aaenoaeyo iinea aiaaaeaiey, iinea eciaiaiey. * * @global array $GLOBALS * @global string $FILES_FOLDER * @param string $src_field_name - eiy iiey-enoi?ieea * @param string $dest_field_name - eiy iiey-i?e?iieea * @param int $width Oe?eia iiaiai ecia?a?aiey * @param int $height Aunioa iiaiai ecia?a?aiey * @param int $mode [optional] ?a?ei oiaiuoaiey: 0 - i?iii?oeiiaeuii oiaiuoaao; 1 - aienuaaao a oeacaiiua ?acia?u, ia?acay e?ay * @param string $format [optional] Oi?iao nicaaaaaiiai ecia?a?aiey (jpg, gif, png) * @param int $quality [optional] Ea?anoai n?aoey ecia?a?aiey (0-100) i?e $format=='jpg' * * @return bool true a neo?aa oaa?e, false - a neo?aa ioeaee. * @access public * @static */ public static function createThumb($src_field_name, $dest_field_name, $width, $height, $mode=0, $format='jpg', $quality=90) { global $GLOBALS; global $message, $classID; $src_field_id = $GLOBALS['fldID'][array_search($src_field_name, $GLOBALS['fld'])]; $dest_field_id = $GLOBALS['fldID'][array_search($dest_field_name, $GLOBALS['fld'])]; return self::createThumb_byID($classID, $message, $src_field_id, $dest_field_id, $width, $height,$mode,$format,$quality, $src_field_name); } /** * Ooieoee aey nicaaiey thumbnails aey iieae oeia oaee * * * @global object $nc_core * @param int $classID - eaaioeoeaeoi? eeanna (eiiiiiaioa) * @param int $message - iiia? iauaeou * @param int $field_src_id - eaaioeoeeaoi? iiey enoi?ieea * @param int $field_dst_id - eaaioeoeeaoi? iiey i?eaiieea * @param int $width Oe?eia iiaiai ecia?a?aiey * @param int $height Aunioa iiaiai ecia?a?aiey * @param int $mode [optional] ?a?ei oiaiuoaiey: 0 - i?iii?oeiiaeuii oiaiuoaao; 1 - aienuaaao a oeacaiiua ?acia?u, ia?acay e?ay * @param string $format [optional] Oi?iao nicaaaaaiiai ecia?a?aiey (jpg, gif, png) * @param int $quality [optional] Ea?anoai n?aoey ecia?a?aiey (0-100) i?e $format=='jpg' * @param string $field_name_src * @return bool true a neo?aa oaa?e, false - a neo?aa ioeaee. * @access public * @static */ public static function createThumb_byID($classID,$message,$field_src_id, $field_dst_id, $width, $height, $mode=0, $format='jpg', $quality=90,$field_name_src='') { global $nc_core; // i?iaa?ea a?aoiaioia $message += 0; $field_src_id += 0; $field_dst_id += 0; $classID += 0; if ( !$message || !$field_src_id || !$field_dst_id || !$classID ) return false; # iiene enoiaiiai oaeea // eaoeineia eiy iiey if ( !$field_name_src ) { $field_name_src = $nc_core->db->get_var("SELECT `Field_Name` FROM `Field` WHERE `Field_ID` = '".$field_src_id."'"); } if ( !$field_name_src ) return 0; // Cia?aiea iiey a oaaeeoa iauaeoia $message_field = $nc_core->db->get_row("SELECT * FROM `Message".$classID."` WHERE `Message_ID` = '".$message."'", ARRAY_A); $file_data = explode(':', $message_field[$field_name_src]); $file_name = $file_data[0]; $file_type = $file_data[1]; $file_size = $file_data[2]; $ext = substr($file_name, strrpos($file_name, ".")); // ?anoe?aiea oaeea $file_name = substr($file_name, 0, strrpos($file_name, ".")); // eiy oaeea aac ?anoe?aiey. // anee ee oaee a Filetable ? $filetable = $nc_core->db->get_row("SELECT * FROM `Filetable` WHERE `Message_ID` = '".intval($message)."' AND `Field_ID` = '".intval($field_src_id)."'", ARRAY_A); // ii?aaaeaiey iieiiai iooe e oaeeo if ( $filetable ) { // enoiaiue oaee a protected $path_src = rtrim($nc_core->FILES_FOLDER, '/').$filetable['File_Path'].$filetable['Virt_Name']; } else { if ( $file_data[3] ) { // orignal //$path_src = $nc_core->FILES_FOLDER.$file_data[3]; $path_src = $nc_core->FILES_FOLDER. self::$big ."_".$message.$ext; } else { // simple //$path_src = $nc_core->FILES_FOLDER.$field_src."_".$message.$ext; $path_src = $nc_core->FILES_FOLDER . self::$big . "_".$message.$ext; } } // iieo?aiea eioi?iaoee i iiea-i?eaiieea $field_info_desc = $nc_core->db->get_row("SELECT `Field_Name`, `Format` FROM `Field` WHERE `Field_ID` = '".$field_dst_id."'", ARRAY_A); if ( !$field_info_desc) return false; //oaaeaiea noa?iai oaeea require_once($nc_core->INCLUDE_FOLDER."s_files.inc.php"); DeleteFile($field_dst_id, $field_info_desc['Field_Name'], $classID, 0, $message); // ii?aaaeaiea oeia on i?eiaieea //$fs = nc_parse_fieldformat($field_info_desc['Format'], NC_FIELDTYPE_FILE); $fs = $fs['fs']; $file_name.="_thumb"; // ii?aaaeiea eiaie oaeea ia aenea e ae?aoi?ee switch ( $fs ) { case NC_FS_PROTECTED: $path_dsc = $message_field['Subdivision_ID'].'/'.$message_field['Sub_Class_ID'].'/'; $name_dsc = md5($file_name.date("H:i:s d.m.Y").uniqid("netcat")); break; case NC_FS_ORIGINAL: $path_dsc = $message_field['Subdivision_ID'].'/'.$message_field['Sub_Class_ID'].'/'; $name_dsc = nc_get_filename_for_original_fs($file_name.".".$format, $nc_core->FILES_FOLDER.$path_dsc); break; //case NC_FS_SIMPLE: default: $path_dsc = self::$small; $name_dsc = $field_dst."_".$message.$ext; break; } // nicaaiea thumb $path_dest = $nc_core->FILES_FOLDER.$path_dsc.$name_dsc; // eiie?iaaiea oaeea copy($path_src, $nc_core->FILES_FOLDER.$path_dsc.$name_dsc); echo "$path_src
$path_dest