void MythImage::MakeGradient(QImage &image, const QColor &begin, const QColor &end, int alpha, bool drawBoundary, FillDirection direction) { // Gradient fill colours QColor startColor = begin; QColor endColor = end; startColor.setAlpha(alpha); endColor.setAlpha(alpha); // Define Gradient QPoint pointA(0,0); QPoint pointB; if (direction == FillTopToBottom) { pointB = QPoint(0,image.height()); } else if (direction == FillLeftToRight) { pointB = QPoint(image.width(),0); } QLinearGradient gradient(pointA, pointB); gradient.setColorAt(0, startColor); gradient.setColorAt(1, endColor); // Draw Gradient QPainter painter(&image); painter.setCompositionMode(QPainter::CompositionMode_Source); painter.fillRect(0, 0, image.width(), image.height(), gradient); if (drawBoundary) { // Draw boundry rect QColor black(0, 0, 0, alpha); painter.setPen(black); QPen pen = painter.pen(); pen.setWidth(1); painter.drawRect(image.rect()); } painter.end(); }