mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2026-02-10 16:01:33 +00:00
Added average color calculation of feeds' favicons for banded display.
This commit is contained in:
@@ -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>";
|
||||
|
||||
@@ -408,9 +408,14 @@
|
||||
}
|
||||
|
||||
if ($favicon_needs_check) {
|
||||
check_feed_favicon($site_url, $feed, $link);
|
||||
|
||||
db_query($link, "UPDATE ttrss_feeds SET favicon_last_checked = NOW()
|
||||
$favicon_file = check_feed_favicon($site_url, $feed, $link);
|
||||
if ($favicon_file) {
|
||||
$favicon_color = calculate_avg_color($favicon_file);
|
||||
if (is_array($favicon_color))
|
||||
$favicon_colorstring = ",favicon_avg_color = '" . implode("|", array_slice($favicon_color, 0, 3)) . "'";
|
||||
}
|
||||
|
||||
db_query($link, "UPDATE ttrss_feeds SET favicon_last_checked = NOW() $favicon_colorstring
|
||||
WHERE id = '$feed'");
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user