function
resizeImage(
$file
){
define ('MAX_WIDTH', 1500);
define ('MAX_HEIGHT', 1500);
define ('MAX_FILE_SIZE', 10485760);
$path
= 'storeResize/';
$new_width
= 128;
$new_height
= 128;
$nameOfFile
= 'resize_'.
$new_width
.'x'.
$new_height
.'_'.
basename
(
$file
['name']);
$image_type
=
$file
['type'];
$image_size
=
$file
['size'];
$image_error
=
$file
['error'];
$image_file
=
$file
['tmp_name'];
$image_name
=
$file
['name'];
$image_info
=
getimagesize
(
$image_file
);
if
(
$image_info
['mime'] == 'image/jpeg'
or
$image_info
['mime'] == 'image/jpg'){
}
else
if
(
$image_info
['mime'] == 'image/png'){
}
else
if
(
$image_info
['mime'] == 'image/gif'){
}
else
{
}
if
(
$image_error
){
}
if
(
$image_size
> MAX_FILE_SIZE ){
}
switch
(
$image_info
['mime']) {
case
'image/jpg':
case
'image/jpeg':
$image
= imagecreatefromjpeg (
$image_file
);
break
;
case
'image/png':
$image
= imagecreatefrompng (
$image_file
);
break
;
case
'image/gif':
$image
= imagecreatefromgif (
$image_file
);
break
;
}
if
(
$new_width
== 0 &&
$new_height
== 0) {
$new_width
= 100;
$new_height
= 100;
}
$new_width
= min (
$new_width
, MAX_WIDTH);
$new_height
= min (
$new_height
, MAX_HEIGHT);
$width
= imagesx (
$image
);
$height
= imagesy (
$image
);
$zoom_crop
= 1;
$origin_x
= 0;
$origin_y
= 0;
if
(
$new_width
&& !
$new_height
) {
$new_height
=
floor
(
$height
* (
$new_width
/
$width
));
}
else
if
(
$new_height
&& !
$new_width
) {
$new_width
=
floor
(
$width
* (
$new_height
/
$height
));
}
if
(
$zoom_crop
== 3) {
$final_height
=
$height
* (
$new_width
/
$width
);
if
(
$final_height
>
$new_height
) {
$new_width
=
$width
* (
$new_height
/
$height
);
}
else
{
$new_height
=
$final_height
;
}
}
$canvas
= imagecreatetruecolor (
$new_width
,
$new_height
);
imagealphablending (
$canvas
, false);
if
(
strlen
(
$canvas_color
) < 6) {
$canvas_color
= 'ffffff';
}
$canvas_color_R
= hexdec (
substr
(
$canvas_color
, 0, 2));
$canvas_color_G
= hexdec (
substr
(
$canvas_color
, 2, 2));
$canvas_color_B
= hexdec (
substr
(
$canvas_color
, 2, 2));
$color
= imagecolorallocatealpha (
$canvas
,
$canvas_color_R
,
$canvas_color_G
,
$canvas_color_B
, 127);
imagefill (
$canvas
, 0, 0,
$color
);
if
(
$zoom_crop
== 2) {
$final_height
=
$height
* (
$new_width
/
$width
);
if
(
$final_height
>
$new_height
) {
$origin_x
=
$new_width
/ 2;
$new_width
=
$width
* (
$new_height
/
$height
);
$origin_x
=
round
(
$origin_x
- (
$new_width
/ 2));
}
else
{
$origin_y
=
$new_height
/ 2;
$new_height
=
$final_height
;
$origin_y
=
round
(
$origin_y
- (
$new_height
/ 2));
}
}
imagesavealpha (
$canvas
, true);
if
(
$zoom_crop
> 0) {
$src_x
=
$src_y
= 0;
$src_w
=
$width
;
$src_h
=
$height
;
$cmp_x
=
$width
/
$new_width
;
$cmp_y
=
$height
/
$new_height
;
if
(
$cmp_x
>
$cmp_y
) {
$src_w
=
round
(
$width
/
$cmp_x
*
$cmp_y
);
$src_x
=
round
((
$width
- (
$width
/
$cmp_x
*
$cmp_y
)) / 2);
}
else
if
(
$cmp_y
>
$cmp_x
) {
$src_h
=
round
(
$height
/
$cmp_y
*
$cmp_x
);
$src_y
=
round
((
$height
- (
$height
/
$cmp_y
*
$cmp_x
)) / 2);
}
if
(
$align
) {
if
(
strpos
(
$align
, 't') !== false) {
$src_y
= 0;
}
if
(
strpos
(
$align
, 'b') !== false) {
$src_y
=
$height
-
$src_h
;
}
if
(
strpos
(
$align
, 'l') !== false) {
$src_x
= 0;
}
if
(
strpos
(
$align
, 'r') !== false) {
$src_x
=
$width
-
$src_w
;
}
}
imagecopyresampled (
$canvas
,
$image
,
$origin_x
,
$origin_y
,
$src_x
,
$src_y
,
$new_width
,
$new_height
,
$src_w
,
$src_h
);
}
else
{
imagecopyresampled (
$canvas
,
$image
, 0, 0, 0, 0,
$new_width
,
$new_height
,
$width
,
$height
);
}
if
( (IMAGETYPE_PNG ==
$image_info
[2] || IMAGETYPE_GIF ==
$image_info
[2]) && function_exists('imageistruecolor') && !imageistruecolor(
$image
) && imagecolortransparent(
$image
) > 0 ){
imagetruecolortopalette(
$canvas
, false, imagecolorstotal(
$image
) );
}
$quality
= 100;
$nameOfFile
= 'resize_'.
$new_width
.'x'.
$new_height
.'_'.
basename
(
$file
['name']);
if
(preg_match('/^image\/(?:jpg|jpeg)$/i',
$image_info
['mime'])){
imagejpeg(
$canvas
,
$path
.
$nameOfFile
,
$quality
);
}
else
if
(preg_match('/^image\/png$/i',
$image_info
['mime'])){
imagepng(
$canvas
,
$path
.
$nameOfFile
,
floor
(
$quality
* 0.09));
}
else
if
(preg_match('/^image\/gif$/i',
$image_info
['mime'])){
imagegif(
$canvas
,
$path
.
$nameOfFile
);
}
}