diff options
author | Haakon Meland Eriksen <haakon.eriksen@far.no> | 2015-09-30 12:21:36 +0200 |
---|---|---|
committer | Haakon Meland Eriksen <haakon.eriksen@far.no> | 2015-09-30 12:21:36 +0200 |
commit | e07ff7d3fbb9bef720831dc71470b70a882abfdf (patch) | |
tree | 68934f0deb2fb9edef69954d1016734bc8662957 /include/photo | |
parent | b22fa9f7f4b77569c29b0fc881373393281b7bf4 (diff) | |
parent | e769fbaffb09aa673d7475c598e7df7e7978d210 (diff) | |
download | volse-hubzilla-e07ff7d3fbb9bef720831dc71470b70a882abfdf.tar.gz volse-hubzilla-e07ff7d3fbb9bef720831dc71470b70a882abfdf.tar.bz2 volse-hubzilla-e07ff7d3fbb9bef720831dc71470b70a882abfdf.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'include/photo')
-rw-r--r-- | include/photo/photo_driver.php | 108 |
1 files changed, 63 insertions, 45 deletions
diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 2a7d1ae01..32b9bd302 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -591,67 +591,85 @@ function import_xchan_photo($photo,$xchan,$thing = false) { if(! $type) $type = 'image/jpeg'; + $result = z_fetch_url($photo,true); - if($result['success']) + if($result['success']) { $img_str = $result['body']; - } - - $img = photo_factory($img_str, $type); - if($img->is_valid()) { - $width = $img->getWidth(); - $height = $img->getHeight(); - - if($width && $height) { - if(($width / $height) > 1.2) { - // crop out the sides - $margin = $width - $height; - $img->cropImage(300,($margin / 2),0,$height,$height); - } - elseif(($height / $width) > 1.2) { - // crop out the bottom - $margin = $height - $width; - $img->cropImage(300,0,0,$width,$width); + $h = explode("\n",$result['header']); + if($h) { + foreach($h as $hl) { + if(stristr($hl,'content-type:')) { + if(! stristr($hl,'image/')) { + $photo_failure = true; + } + } + } } - else { - $img->scaleImageSquare(300); - } - } - else - $photo_failure = true; + } + else { + $photo_failure = true; + } - $p = array('xchan' => $xchan,'resource_id' => $hash, 'filename' => basename($photo), 'album' => $album, 'photo_usage' => $flags, 'scale' => 4); + if(! $photo_failure) { + $img = photo_factory($img_str, $type); + if($img->is_valid()) { + $width = $img->getWidth(); + $height = $img->getHeight(); + + if($width && $height) { + if(($width / $height) > 1.2) { + // crop out the sides + $margin = $width - $height; + $img->cropImage(300,($margin / 2),0,$height,$height); + } + elseif(($height / $width) > 1.2) { + // crop out the bottom + $margin = $height - $width; + $img->cropImage(300,0,0,$width,$width); - $r = $img->save($p); + } + else { + $img->scaleImageSquare(300); + } - if($r === false) - $photo_failure = true; + } + else + $photo_failure = true; - $img->scaleImage(80); - $p['scale'] = 5; + $p = array('xchan' => $xchan,'resource_id' => $hash, 'filename' => basename($photo), 'album' => $album, 'photo_usage' => $flags, 'scale' => 4); - $r = $img->save($p); + $r = $img->save($p); - if($r === false) - $photo_failure = true; + if($r === false) + $photo_failure = true; - $img->scaleImage(48); - $p['scale'] = 6; + $img->scaleImage(80); + $p['scale'] = 5; + + $r = $img->save($p); - $r = $img->save($p); + if($r === false) + $photo_failure = true; + + $img->scaleImage(48); + $p['scale'] = 6; + + $r = $img->save($p); - if($r === false) - $photo_failure = true; + if($r === false) + $photo_failure = true; - $photo = $a->get_baseurl() . '/photo/' . $hash . '-4'; - $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5'; - $micro = $a->get_baseurl() . '/photo/' . $hash . '-6'; - } - else { - logger('import_xchan_photo: invalid image from ' . $photo); - $photo_failure = true; + $photo = $a->get_baseurl() . '/photo/' . $hash . '-4'; + $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5'; + $micro = $a->get_baseurl() . '/photo/' . $hash . '-6'; + } + else { + logger('import_xchan_photo: invalid image from ' . $photo); + $photo_failure = true; + } } if($photo_failure) { $photo = $a->get_baseurl() . '/' . get_default_profile_photo(); |