Untitled
unknown
php
4 years ago
5.3 kB
7
Indexable
function crop($src, $xwidth, $xheight, $noprint="", $expath="cache"){
$export_path = $expath;
$src = AP.'/noduploads/'.$src;
if (!file_exists($src) or is_dir($src)) {
//return false;
echo "";
return;
} elseif (($size = getimagesize ( $src )) === false) {
//return false;
echo "";
return;
}
/*
if (! function_exists ( $icfunc = 'imagecreatefrom' . strtolower ( substr ( $size ['mime'], strpos ( $size ['mime'], '/' ) + 1 ) ) )) {
//return false;
echo "";
return;
}*/
$icfunc = "imagecreatefromjpeg";
$filename = end ( explode ( '/', $src ) );
$ext = end ( explode ( '.', $filename ) );
$original_aspect = $size[0] / $size[1];
$thumb_aspect = $xwidth / $xheight;
if ( $original_aspect >= $thumb_aspect ){
// If image is wider than thumbnail (in aspect ratio sense)
$new_height = $xheight;
$new_width = $size[0] / ($size[1] / $xheight);
}else{
// If the thumbnail is wider than the image
$new_width = $xwidth;
$new_height = $size[1] / ($size[0] / $xwidth);
}
$modtime = filemtime($src);
if($newfilename==""){
$_filename = md5($src.$modtime).'_'.$xwidth.'_'.$xheight.'.'.$ext;
}else{
$_filename = md5($src.$modtime).'_'.$newfilename.'.'.$ext;
}
if (file_exists(AP.'/'.$export_path.'/'.$_filename) && substr($_filename, 0, strpos($_filename, '_')) == md5($src.$modtime)) {
//$idest = $icfunc ( 'cache/'.$_filename );
if($noprint==""){
echo root."/".$export_path."/".$_filename;
}else{
return root."/".$export_path."/".$_filename;
}
} else {
$image = imagecreatefromjpeg($src);
$thumb = imagecreatetruecolor( $xwidth, $xheight );
// Resize and crop
imagecopyresampled($thumb,
$image,
0 - ($new_width - $xwidth) / 2, // Center the image horizontally
0 - ($new_height - $xheight) / 2, // Center the image vertically
0, 0,
$new_width, $new_height,
$size[0], $size[1]);
imagejpeg($thumb, AP.'/'.$export_path.'/'.$_filename, QUALITY);
imagedestroy ( $thumb );
imagedestroy ( $image );
if($noprint==""){
echo root."/".$export_path."/".$_filename;
}else{
return root."/".$export_path."/".$_filename;
}
}
}
function resim2($xwidth, $src, $wm="", $xheight="", $newfilename="", $noprint="", $expath="cache"){
$export_path = $expath;
$src = AP.'/noduploads/'.$src;
if (!file_exists($src) or is_dir($src)) {
//return false;
echo "";
return;
} elseif (($size = getimagesize ( $src )) === false) {
//return false;
echo "";
return;
}
/*
if (!function_exists ( $icfunc = 'imagecreatefrom' . strtolower ( substr ( $size ['mime'], strpos ( $size ['mime'], '/' ) + 1 ) ) )) {
//return false;
echo "";
return;
}
*/
$icfunc = "imagecreatefromjpeg";
$filename = end ( explode ( '/', $src ) );
$ext = end ( explode ( '.', $filename ) );
//$fsize = filesize($src);
if($size[0]>=$size[1]){
if($size[0] <= $xwidth){
$width = $size[0];
$height = $size[1];
}else{
$width = (int) $xwidth;
$height = (int) @$xheight;
}
}else{
if($size[1] <= $xheight){
$width = $size[0];
$height = $size[1];
}else{
if($xheight == 0 or $xheight == ""){
if($size[0]<$xwidth){
$width=$size[0];
}else{
$width=$xwidth;
}
$height = (int) @$xheight;
}else{
$width = (int) $xwidth;
$height = (int) @$xheight;
}
}
}
//burada değişiklik yapsak performansda iyileşme olur. çöplük olmasına sebebiyet veriyor.
$modtime = filemtime($src);
if($newfilename==""){
$_filename = md5($src.$modtime).'_'.$width.'.'.$ext;
}else{
$_filename = md5($src.$modtime).'_'.$newfilename.'.'.$ext;
}
if($wm==1){
}else{
if (file_exists(AP.'/'.$export_path.'/'.$_filename) && substr($_filename, 0, strpos($_filename, '_')) == md5($src.$modtime)) {
//$idest = $icfunc ( 'cache/'.$_filename );
if($noprint==""){
echo root."/".$export_path."/".$_filename;
}else{
return root."/".$export_path."/".$_filename;
}
} else {
$new_size = $width * 100 / $size[0];
if ($height == 0 or $height==""){
$height = $size[1] * $new_size / 100;
}
$x_ratio = $width / $size[0];
$y_ratio = $height / $size[1];
$ratio = min($x_ratio, $y_ratio);
$use_x_ratio = ($x_ratio == $ratio);
$new_width = ($use_x_ratio ? $width : floor($size[0] * $ratio));
$new_height = (!$use_x_ratio ? $height : floor($size[1] * $ratio));
$isrc = $icfunc($src);
$idest = imagecreatetruecolor($new_width, $new_height);
$new_left = 0;
$new_top = 0;
imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, $new_width, $new_height, $size[0], $size[1]);
imagejpeg($idest, AP.'/'.$export_path.'/'.$_filename, QUALITY);
imagedestroy($isrc);
imagedestroy($idest);
if($noprint==""){
echo root."/".$export_path."/".$_filename;
}else{
return root."/".$export_path."/".$_filename;
}
}
}
}
Editor is loading...