diff options
author | friendica <info@friendica.com> | 2012-02-25 14:22:51 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2012-02-25 14:22:51 -0800 |
commit | 2c7da5d0de29cd7010bd6a34c0b6cfb79fe24466 (patch) | |
tree | d435288e900f509fb3075fb000cc4f005f6627e2 /include/network.php | |
parent | 579738aff77ed0aa6da853b479720be9ea4953d2 (diff) | |
download | volse-hubzilla-2c7da5d0de29cd7010bd6a34c0b6cfb79fe24466.tar.gz volse-hubzilla-2c7da5d0de29cd7010bd6a34c0b6cfb79fe24466.tar.bz2 volse-hubzilla-2c7da5d0de29cd7010bd6a34c0b6cfb79fe24466.zip |
scale external images
Diffstat (limited to 'include/network.php')
-rwxr-xr-x | include/network.php | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/include/network.php b/include/network.php index 25db62d16..531c3ea4c 100755 --- a/include/network.php +++ b/include/network.php @@ -776,3 +776,43 @@ function add_fcontact($arr,$update = false) { return $r; } + + +function scale_external_images($s,$include_link = true) { + + $a = get_app(); + + $matches = null; + $c = preg_match_all('/\[img\](.*?)\[\/img\]/ism',$s,$matches,PREG_SET_ORDER); + if($c) { + require_once('include/Photo.php'); + foreach($matches as $mtch) { + logger('scale_external_image: ' . $mtch[1]); + $hostname = str_replace('www.','',substr($a->get_baseurl(),strpos($a->get_baseurl(),'://')+3)); + if(stristr($mtch[1],$hostname)) + continue; + $i = fetch_url($mtch[1]); + if($i) { + $ph = new Photo($i); + if($ph->is_valid()) { + $orig_width = $ph->getWidth(); + $orig_height = $ph->getHeight(); + + if($orig_width > 640 || $orig_height > 640) { + + $ph->scaleImage(640); + $new_width = $ph->getWidth(); + $new_height = $ph->getHeight(); + logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG); + $s = str_replace($mtch[0],'[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]' + . "\n" . (($include_link) + ? '[url=' . $mtch[1] . ']' . t('view full size') . '[/url]' . "\n" + : ''),$s); + logger('scale_external_images: new string: ' . $s, LOGGER_DEBUG); + } + } + } + } + } + return $s; +} |