Index: mythtv/libs/libmythui/mythimage.cpp
===================================================================
--- mythtv/libs/libmythui/mythimage.cpp	(revision 20462)
+++ mythtv/libs/libmythui/mythimage.cpp	(working copy)
@@ -28,6 +28,7 @@
     m_gradDirection = FillTopToBottom;
 
     m_isReflected = false;
+    m_setIntensity = false;
 
     m_imageId = 0;
 
@@ -221,6 +222,78 @@
     }
 }
 
+void MythImage::Intensity(float percent)
+{
+    if (m_setIntensity)
+        return;
+
+    int segColors = depth() > 8 ? 256 : numColors();
+    int pixels = depth() > 8 ? width()*height() :
+        numColors();
+    unsigned int *data = depth() > 8 ? (unsigned int *)bits() : 
+        (unsigned int *)colorTable().data();
+
+    bool brighten = (percent >= 0);
+    if(percent < 0)
+        percent = -percent;
+
+    unsigned char *segTbl = new unsigned char[segColors];
+    int tmp;
+    if(brighten)
+    {
+        for(int i=0; i < segColors; ++i)
+        {
+            tmp = (int)(i*percent);
+            if(tmp > 255)
+                tmp = 255;
+            segTbl[i] = tmp;
+        }
+    }
+    else
+    {
+        for(int i=0; i < segColors; ++i)
+        {
+            tmp = (int)(i*percent);
+            if(tmp < 0)
+                tmp = 0;
+             segTbl[i] = tmp;
+        }
+    }
+
+    if(brighten)
+    {
+        for(int i=0; i < pixels; ++i)
+        {
+            int r = qRed(data[i]);
+            int g = qGreen(data[i]);
+            int b = qBlue(data[i]);
+            int a = qAlpha(data[i]);
+            r = r + segTbl[r] > 255 ? 255 : r + segTbl[r];
+            g = g + segTbl[g] > 255 ? 255 : g + segTbl[g];
+            b = b + segTbl[b] > 255 ? 255 : b + segTbl[b];
+            data[i] = qRgba(r, g, b, a);
+        }
+    }
+    else
+    {
+        for(int i=0; i < pixels; ++i)
+        {
+            int r = qRed(data[i]);
+            int g = qGreen(data[i]);
+            int b = qBlue(data[i]);
+            int a = qAlpha(data[i]);
+            r = r - segTbl[r] < 0 ? 0 : r - segTbl[r];
+            g = g - segTbl[g] < 0 ? 0 : g - segTbl[g];
+            b = b - segTbl[b] < 0 ? 0 : b - segTbl[b];
+            data[i] = qRgba(r, g, b, a);
+        }
+    }
+    delete [] segTbl;
+
+    m_setIntensity = true;
+}
+
+
 MythImage *MythImage::FromQImage(QImage **img)
 {
     if (!img || !*img)
Index: mythtv/libs/libmythui/mythimage.h
===================================================================
--- mythtv/libs/libmythui/mythimage.h	(revision 20462)
+++ mythtv/libs/libmythui/mythimage.h	(working copy)
@@ -28,6 +28,7 @@
 
     bool IsGradient() const { return m_isGradient; }
     bool IsReflected() const { return m_isReflected; }
+    bool HasIntensity() const { return m_setIntensity; }
 
     void Assign(const QImage &img);
     void Assign(const QPixmap &pix);
@@ -41,6 +42,7 @@
     void Reflect(ReflectAxis axis, int shear, int scale, int length,
                  int spacing = 0);
     void ToGreyscale();
+    void Intensity(float percent);
 
     /**
      * @brief Create a gradient image.
@@ -60,6 +62,7 @@
     QString GetFileName(void) const { return m_FileName; }
 
     void setIsReflected(bool reflected) { m_isReflected = reflected; }
+    void setHasIntensity(bool intensity) { m_setIntensity = intensity; }
 
     void SetIsInCache(bool bCached);
 
@@ -83,6 +86,7 @@
     FillDirection m_gradDirection;
 
     bool m_isReflected;
+    bool m_setIntensity;
 
     unsigned int m_imageId;
 
Index: mythtv/libs/libmythui/mythuiimage.cpp
===================================================================
--- mythtv/libs/libmythui/mythuiimage.cpp	(revision 20462)
+++ mythtv/libs/libmythui/mythuiimage.cpp	(working copy)
@@ -113,6 +113,9 @@
 
     m_isGreyscale = false;
 
+    m_hasIntensity = false;
+    m_intensity = 0;
+
     m_preserveAspect = false;
 }
 
@@ -187,6 +190,9 @@
     if (m_isGreyscale && !img->isGrayscale())
         img->ToGreyscale();
 
+    if (m_hasIntensity && !img->HasIntensity())
+        img->Intensity(m_intensity);
+
     if (m_ForceSize.isNull())
         SetSize(img->size());
 
@@ -234,6 +240,9 @@
         if (m_isGreyscale && !im->isGrayscale())
             im->ToGreyscale();
 
+        if (m_hasIntensity && !im->HasIntensity())
+            im->Intensity(m_intensity);
+
         m_Images.push_back(im);
 
         aSize = aSize.expandedTo(im->size());
@@ -326,6 +335,9 @@
     if (m_isGreyscale)
         s_Attrib += "greyscale";
 
+    if (m_hasIntensity)
+        s_Attrib += "intensity";
+
     imagelabel  = QString("%1-%2-%3x%4.png")
                           .arg(filename)
                           .arg(s_Attrib)
@@ -414,6 +426,8 @@
                 VERBOSE(VB_FILE, QString("MythUIImage::Load found in cache :%1:").arg(imagelabel));
                 if (m_isReflected)
                     image->setIsReflected(true);
+                if (m_hasIntensity)
+                    image->setHasIntensity(true);
 
                 bFoundInCache = true;
             }
@@ -467,6 +481,9 @@
             if (m_isGreyscale)
                 image->ToGreyscale();
 
+            if (m_hasIntensity)
+                image->Intensity(m_intensity);
+
             // Save scaled copy to cache
             if (bNeedLoad)
                 GetMythUI()->CacheImage(imagelabel, image);
@@ -675,6 +692,11 @@
     {
         m_isGreyscale = parseBool(element);
     }
+    else if (element.tagName() == "intensity")
+    {
+        m_hasIntensity = true;
+        m_intensity = (getFirstText(element).toFloat() / 100);
+    }
     else
         return MythUIType::ParseElement(element);
 
@@ -733,6 +755,9 @@
 
     m_isGreyscale = im->m_isGreyscale;
 
+    m_hasIntensity = im->m_hasIntensity;
+    m_intensity = im->m_intensity;
+
     //SetImages(im->m_Images);
 
     MythUIType::CopyFrom(base);
Index: mythtv/libs/libmythui/mythuiimage.h
===================================================================
--- mythtv/libs/libmythui/mythuiimage.h	(revision 20462)
+++ mythtv/libs/libmythui/mythuiimage.h	(working copy)
@@ -99,7 +99,10 @@
     bool m_preserveAspect;
 
     bool m_isGreyscale;
+    bool m_hasIntensity;
 
+    float m_intensity;
+
     friend class MythThemeBase;
     friend class MythUIButtonListItem;
     friend class MythUIProgressBar;
