User Tools

Site Tools


php:functions:imagecolor

[PHP] imageColorFromHtml

Diese Funktion erstellt ein color für ein Image anhand des HTML-Wertes der Farbe.

Funktion

Das # kann mitgegeben oder weggelassen werden. Es wird nach 6 hexadekadische Ziffern ([[:digit:]A-Fa-f]) geprüft.

/**
* create a imageColor by a html #-Value (#FFFFFF, #00FFFF, FFFFFF etc.)
* @param    Image
* @param    String color als Hexwert
* @return   ImageColor
*/
function imageColorFromHtml(&$image, $color){
	//Der Pattern zum zerlegen des Strings in seine RGB-Werte. 
	//String beginnt mit oder ohne ein #. 
	//gefolgt von 3 mal 2 [:xdigit:] ([:xdigit:]:Hexadecimal digit characters) 
	//und endet danach
	$hex_color_pattern6 = '/^#?([[:xdigit:]]{2})([[:xdigit:]]{2})([[:xdigit:]]{2})$/';
	//Für die Kurzform ists dasselbe, einfach nur 3 [:xdigit:]
	$hex_color_pattern3 = '/^#?([[:xdigit:]])([[:xdigit:]])([[:xdigit:]])$/';
	//Falls es sich um eine Kurzform handelt, die Werte verdoppeln
	$color =  preg_replace($hex_color_pattern3, '\1\1\2\2\3\3', $color);
	//hexwert parsen
	if(!preg_match($hex_color_pattern6, $color, $rgb)) return false;
	//Gefundener Gesammtstring entfernen. Der erste Eintrag im Array ist der gesammte gefundene String.
	//Das brauchen wir ncht 
	array_shift($rgb);
	//Alle Hexwerte in Decimale Werte wandeln 
	//ERS: 20.01.2012: Array_walk durch array_map ersetzte 
	//array_walk($rgb, create_function('&$item, $key', '$item = hexdec($item);'));
	$rgb = array_map('hexdec', $rgb);
	//Und zuguter letzte mit ImageColorAllocate() und unseren RGB-Werten den ImageColor erstellen
	return ImageColorAllocate($image, $rgb[0], $rgb[1], $rgb[2]);
}
php/functions/imagecolor.txt · Last modified: 09.12.2013 09:39:54 (external edit)