Доработка вставки видео в пост
Много думал глядя на код вставки видео в пост. Честно говоря так и не понял зачем там по два раза идёт замена тегов(т.е. понятно, но нафига?).
Читать дальше →
Читать дальше →
/**
* Рейсайзинг картинок
*
* @param unknown_type $sFileSrc
* @param unknown_type $sDirDest
* @param unknown_type $sFileDest
* @param unknown_type $iWidthMax
* @param unknown_type $iHeightMax
* @param unknown_type $iWidthDest
* @param unknown_type $iHeightDest
* @param unknown_type $bForcedMinSize
* @return unknown
*/
function func_img_resize($sFileSrc,$sDirDest,$sFileDest,$iWidthMax,$iHeightMax,$iWidthDest=null,$iHeightDest=null,$bForcedMinSize=true) {
if (!($aSize=getimagesize($sFileSrc))) {
return false;
}
$img_src=false;
switch ($aSize['mime']) {
case 'image/png':
$img_src=imagecreatefrompng($sFileSrc);
$sFileDest.='.png';
break;
case 'image/gif':
$img_src=imagecreatefromgif($sFileSrc);
$sFileDest.='.gif';
break;
case 'image/jpeg':
$img_src=imagecreatefromjpeg($sFileSrc);
$sFileDest.='.jpg';
break;
default:
return false;
break;
}
if (!$img_src) {
return false;
}
$iWidthNew=$aSize[0];
$iHeightNew=$aSize[1];
if (($iWidthNew>$iWidthMax) or ($iHeightNew>$iHeightMax)) {
return false;
}
if ($iWidthDest) {
if (!$bForcedMinSize and ($iWidthDest>$iWidthNew)) {
$iWidthDest=$iWidthNew;
}
$iSizeRelation=$iWidthDest/$iWidthNew;
$iWidthNew=$iWidthDest;
$iHeightNew=round($iSizeRelation*$iHeightNew);
}
if ($iHeightDest) {
if (!$bForcedMinSize and ($iHeightDest>$iHeightNew)) {
$iHeightDest=$iHeightNew;
}
$iSizeRelation=$iHeightDest/$iHeightNew;
$iHeightNew=$iHeightDest;
$iWidthNew=round($iSizeRelation*$iWidthNew);
}
$sFileFullPath=DIR_SERVER_ROOT.'/'.$sDirDest.'/'.$sFileDest;
@func_mkdir(DIR_SERVER_ROOT,$sDirDest);
if (($iWidthDest and $iWidthDest!=$aSize[0])or($iHeightDest and $iHeightDest!=$aSize[1])) {
$img_dest=imagecreatetruecolor($iWidthNew,$iHeightNew);
imagesavealpha($img_dest,true);
imagealphablending($img_dest,false);
if (imagecopyresampled($img_dest,$img_src,0,0,0,0,$iWidthNew,$iHeightNew,$aSize[0],$aSize[1])) {
imagedestroy($img_src);
switch ($aSize['mime']) {
case 'image/png':
if (imagepng($img_dest,$sFileFullPath)) {
chmod($sFileFullPath,0666);
return $sFileDest;
}
break;
case 'image/gif':
if (imagegif($img_dest,$sFileFullPath)) {
chmod($sFileFullPath,0666);
return $sFileDest;
}
break;
case 'image/jpeg':
if (imagejpeg($img_dest,$sFileFullPath)) {
chmod($sFileFullPath,0666);
return $sFileDest;
}
break;
}
}
} else {
if (copy($sFileSrc,$sFileFullPath)) {
return $sFileDest;
}
}
return false;
}