From d90089314944ed1696f66cabbb6935ea61e4b2e6 Mon Sep 17 00:00:00 2001 From: Sean Murphy Date: Sat, 7 Feb 2009 10:01:08 -0500 Subject: Fixed #1152: Needless image scaling and poor JPG quality --- lib/imagefile.php | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'lib/imagefile.php') diff --git a/lib/imagefile.php b/lib/imagefile.php index 74c3d14f0..faec7f0ff 100644 --- a/lib/imagefile.php +++ b/lib/imagefile.php @@ -112,6 +112,23 @@ class ImageFile throw new Exception(_('Lost our file.')); return; } + + // Don't crop/scale if it isn't necessary + if ($size === $this->width + && $size === $this->height + && $x === 0 + && $y === 0 + && $w === $this->width + && $h === $this->height) { + + $outname = common_avatar_filename($this->id, + image_type_to_extension($this->type), + $size, + common_timestamp()); + $outpath = common_avatar_path($outname); + @copy($this->filepath, $outpath); + return $outname; + } switch ($this->type) { case IMAGETYPE_GIF: @@ -165,7 +182,7 @@ class ImageFile imagegif($image_dest, $outpath); break; case IMAGETYPE_JPEG: - imagejpeg($image_dest, $outpath); + imagejpeg($image_dest, $outpath, 100); break; case IMAGETYPE_PNG: imagepng($image_dest, $outpath); @@ -174,6 +191,9 @@ class ImageFile throw new Exception(_('Unknown file type')); return; } + + imagedestroy($image_src); + imagedestroy($image_dest); return $outname; } -- cgit v1.2.3-54-g00ecf From 805560677bc66a58c270551fa54b613642b3af97 Mon Sep 17 00:00:00 2001 From: Sean Murphy Date: Sat, 7 Feb 2009 11:10:46 -0500 Subject: Fixed references to common_avatar_*. --- lib/imagefile.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/imagefile.php') diff --git a/lib/imagefile.php b/lib/imagefile.php index a8e963370..ea24029a3 100644 --- a/lib/imagefile.php +++ b/lib/imagefile.php @@ -121,11 +121,11 @@ class ImageFile && $w === $this->width && $h === $this->height) { - $outname = common_avatar_filename($this->id, + $outname = Avatar::filename($this->id, image_type_to_extension($this->type), $size, common_timestamp()); - $outpath = common_avatar_path($outname); + $outpath = Avatar::path($outname); @copy($this->filepath, $outpath); return $outname; } -- cgit v1.2.3-54-g00ecf