-
- function scale($filename, $size, $type)
- {
- $filepath = common_avatar_path($filename);
-
- if (!file_exists($filepath)) {
- $this->serverError(_('Lost our file.'));
- return;
- }
-
- $info = @getimagesize($filepath);
-
- switch ($type) {
- case IMAGETYPE_GIF:
- $image_src = imagecreatefromgif($filepath);
- break;
- case IMAGETYPE_JPEG:
- $image_src = imagecreatefromjpeg($filepath);
- break;
- case IMAGETYPE_PNG:
- $image_src = imagecreatefrompng($filepath);
- break;
- default:
- $this->serverError(_('Unknown file type'));
- return;
- }
-
- $image_dest = imagecreatetruecolor($size, $size);
-
- $background = imagecolorallocate($image_dest, 0, 0, 0);
- ImageColorTransparent($image_dest, $background);
- imagealphablending($image_dest, false);
-
- imagecopyresized($image_dest, $image_src,
- 0, 0, 0, 0,
- $size, $size, $info[0], $info[1]);
-
- $outname = common_avatar_filename($this->id,
- image_type_to_extension($type),
- $size,
- common_timestamp());
-
- $outpath = common_avatar_path($outname);
-
- switch ($type) {
- case IMAGETYPE_GIF:
- imagegif($image_dest, $outpath);
- break;
- case IMAGETYPE_JPEG:
- imagejpeg($image_dest, $outpath);
- break;
- case IMAGETYPE_PNG:
- imagepng($image_dest, $outpath);
- break;
- default:
- $this->serverError(_('Unknown file type'));
- return;
- }
-
- return $outname;
- }