예제 #1
0
/**
 * getBrightness get brightness of a color
 *
 * @param string $color 24 bit RGB color as hex digit (i.e. 'FFFFFF')
 *
 * @return int relative brightness of color 1-255001
 */
function getBrightness($color)
{
    $rgb = normalizeColor($color);
    //$brightness = ($rgb['r']*299 + $rgb['g']*587 + $rgb['b']*114) / 1000;
    // luminosity is L = 0.2126 * R + 0.7152 * G + 0.0722.
    $brightness = $rgb['r'] * 0.2126 + $rgb['g'] * 0.7151999999999999 + $rgb['b'] * 0.0722;
    return $brightness + 1.0E-5;
    // no zero
}
예제 #2
0
    case 'Q':
        $ec = Endroid\QrCode\QrCode::LEVEL_QUARTILE;
        break;
    case 'M':
        $ec = Endroid\QrCode\QrCode::LEVEL_MEDIUM;
        break;
    case 'L':
    default:
        $ec = Endroid\QrCode\QrCode::LEVEL_LOW;
        break;
}
$qrCode->setErrorCorrection($ec);
$qrCode->setModuleSize((int) $configs['qrcode_mps'] - 1);
$qrCode->setPadding($configs['qrcode_margin'] * $qrCode->getModuleSize());
$qrCode->setBackgroundColor(normalizeColor($configs['qrcode_bgcolor']));
$qrCode->setForegroundColor(normalizeColor($configs['qrcode_fgcolor']));
//$qrCode->setText("Life is too short to be generating QR codes");
//$qrCode->setSize(300);
try {
    $qrData = $qrCode->get('png');
} catch (\Exception $e) {
    $xoopsPreload->triggerEvent('core.exception', $e);
    $qrData = '';
}
$mimetype = \Xoops\Core\MimeTypes::findType('png');
$expires = 60 * 60 * 24 * 15;
// seconds, minutes, hours, days
header("Cache-Control: public, max-age=" . $expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
//header('Last-Modified: ' . gmdate('D, d M Y H:i:s T', $mtime));
header('Content-type: ' . $mimetype);