diff options
author | moontear <[email protected]> | 2013-04-15 12:28:52 +0200 |
---|---|---|
committer | moontear <[email protected]> | 2013-04-15 12:28:52 +0200 |
commit | 2cfbb448fb197837c063c377c042beb3ba704a52 (patch) | |
tree | a114be33e5343cedb17391d50339e7cd2da14a5f /include/functions.php | |
parent | e43a9c4a01bf095b740e35711c79f6a0ca3374ba (diff) |
Added average color calculation of feeds' favicons for banded display.
Diffstat (limited to 'include/functions.php')
-rw-r--r-- | include/functions.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/include/functions.php b/include/functions.php index e2357f6c0..1ae5bbbe2 100644 --- a/include/functions.php +++ b/include/functions.php @@ -508,8 +508,50 @@ } } } + return $icon_file; } } + + function calculate_avg_color($iconFile) { + + require_once "lib/floIcon.php"; + + $imgInfo = @getimagesize($iconFile); + + if(strtolower($imgInfo['mime'])=='image/vnd.microsoft.icon') { + $ico = new floIcon(); + @$ico->readICO($iconFile); + //TODO: error logging + if(count($ico->images)==0) + return null; + else { + $image = @$ico->images[count($ico->images)-1]->getImageResource(); + } + $type = "ico"; + } + elseif(strtolower($imgInfo['mime'])=='image/png') { + $image = imagecreatefrompng($iconFile); + $type = 'png'; + } + elseif(strtolower($imgInfo['mime'])=='image/jpeg') { + $image = imagecreatefromjpeg($iconFile); + $type = 'jpg'; + } + elseif(strtolower($imgInfo['mime'])=='image/gif') { + $image = imagecreatefromgif($iconFile); + $type = 'gif'; + } + //TODO: error logging + if (is_null($image)) + return null; + $width = imagesx($image); + $height = imagesy($image); + $pixel = imagecreatetruecolor(1, 1); + imagecopyresampled($pixel, $image, 0, 0, 0, 0, 1, 1, $width, $height); + $rgb = imagecolorat($pixel, 0, 0); + $color = imagecolorsforindex($pixel, $rgb); + return $color; + } function print_select($id, $default, $values, $attributes = "") { print "<select name=\"$id\" id=\"$id\" $attributes>"; |