<?php
/**
* @author: huyphungvan
* @date: 9:11 PM 8/28/2009
*/
function cropImage($src, $size, $target = null) {
if ($target == null) {
$name = basename($src);
$pos = strrpos($name, ‘.’);
$name = ($pos === false) ? $name : substr($name, 0, $pos);
$target = $name . ‘_’ . implode(‘x’, $size) . ‘.jpg’;
}
$info = GetImageSize($src);
$width = $info[0];
$height = $info[1];
$mime = $info[‘mime’];
$type = substr(strrchr($mime, ‘/’), 1);
$image_types = array(‘jpeg’, ‘png’, ‘gif’, ‘bmp’);
if (!in_array($type, $image_types)) $type= ‘Jpeg’;
$img_create_func = ‘ImageCreateFrom’ . $type;
list($w, $h) = $size;
$scale_x = $width / $w;
$scale_y = $height / $h;
$scale = min($scale_x, $scale_y);
// Kich thuoc anh crop
$w *= $scale;
$h *= $scale;
$w = intval($w); $h = intval($h);
$src = $img_create_func($src);
$dst = ImageCreateTrueColor($w, $h);
$src_x = ($width – $w)/2;
$src_y = ($height – $h)/2;
// Crop
imagecopy($dst, $src, 0, 0, $src_x, $src_y, $w, $h);
// Resize
$res = ImageCreateTrueColor($size[0], $size[1]);
ImageCopyResampled($res, $dst, 0, 0, 0, 0, $size[0], $size[1], $w, $h);
imagejpeg($res, $target);
imagedestroy($src);
imagedestroy($dst);
return $target;
}