Utilities

API Documentation


This section covers utility functions and helper methods available in the library.

Color Validation

Hex Color Validation

use Farzai\ColorPalette\Utils\ColorValidator;

// Validate hex color
$isValid = ColorValidator::isValidHex('#ff0000'); // true
$isValid = ColorValidator::isValidHex('invalid'); // false

// Validate with alpha channel
$isValid = ColorValidator::isValidHex('#ff0000ff'); // true

RGB Color Validation

// Validate RGB values
$isValid = ColorValidator::isValidRgb(255, 0, 0); // true
$isValid = ColorValidator::isValidRgb(300, 0, 0); // false

// Validate RGB string
$isValid = ColorValidator::isValidRgbString('rgb(255, 0, 0)'); // true

Color Formatting

String Formatting

use Farzai\ColorPalette\Utils\ColorFormatter;

// Format to hex
$hex = ColorFormatter::toHex(255, 0, 0); // '#ff0000'

// Format to RGB string
$rgb = ColorFormatter::toRgbString(255, 0, 0); // 'rgb(255, 0, 0)'

// Format to RGBA string
$rgba = ColorFormatter::toRgbaString(255, 0, 0, 0.5); // 'rgba(255, 0, 0, 0.5)'

Value Normalization

// Normalize RGB values (0-255 to 0-1)
$normalized = ColorFormatter::normalizeRgb(255, 0, 0); // [1, 0, 0]

// Normalize HSL values
$normalized = ColorFormatter::normalizeHsl(360, 100, 50); // [1, 1, 0.5]

Color Math

Color Calculations

use Farzai\ColorPalette\Utils\ColorMath;

// Calculate relative luminance
$luminance = ColorMath::relativeLuminance(255, 0, 0);

// Calculate contrast ratio
$contrast = ColorMath::contrastRatio($color1, $color2);

// Calculate color difference (Delta E)
$difference = ColorMath::deltaE($color1, $color2);

Color Interpolation

// Linear interpolation between colors
$mixed = ColorMath::lerp($color1, $color2, 0.5);

// Bezier interpolation between multiple colors
$colors = [$color1, $color2, $color3];
$result = ColorMath::bezierInterpolation($colors, 0.5);

Image Processing

Color Extraction

use Farzai\ColorPalette\Utils\ImageProcessor;

// Extract dominant colors from image
$colors = ImageProcessor::extractColors('path/to/image.jpg', 5);

// Extract colors with options
$colors = ImageProcessor::extractColors('path/to/image.jpg', [
    'count' => 5,
    'quality' => 10,
    'area' => [0, 0, 100, 100], // crop area
]);

Color Quantization

// Reduce number of colors in image
$reducedColors = ImageProcessor::quantizeColors($colors, 5);

// With specific algorithm
$reducedColors = ImageProcessor::quantizeColors($colors, [
    'count' => 5,
    'algorithm' => 'median-cut'
]);

File Operations

Color Import/Export

use Farzai\ColorPalette\Utils\FileHandler;

// Export colors to file
FileHandler::exportColors($colors, 'palette.json');

// Import colors from file
$colors = FileHandler::importColors('palette.json');

// Export as CSS variables
FileHandler::exportAsCss($colors, 'colors.css', [
    'prefix' => '--color-'
]);

Accessibility Utilities

WCAG Compliance

use Farzai\ColorPalette\Utils\AccessibilityChecker;

// Check WCAG contrast compliance
$isCompliant = AccessibilityChecker::meetsContrastGuidelines(
    $backgroundColor,
    $textColor,
    'AA'
);

// Get minimum required contrast
$minContrast = AccessibilityChecker::getMinimumContrast('AAA', 'large');

Error Handling

use Farzai\ColorPalette\Utils\ErrorHandler;

try {
    // Your color operations
} catch (\Exception $e) {
    // Log error with context
    ErrorHandler::logError($e, [
        'operation' => 'color_conversion',
        'input' => $inputColor
    ]);
}