本文整理汇总了PHP中strings::colorHexToDec方法的典型用法代码示例。如果您正苦于以下问题:PHP strings::colorHexToDec方法的具体用法?PHP strings::colorHexToDec怎么用?PHP strings::colorHexToDec使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类strings
的用法示例。
在下文中一共展示了strings::colorHexToDec方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: textWatermark
/**
* Функция наложения водяного текстового знака на изображение
*
* @return bool
*/
static function textWatermark()
{
// текст водяного знака
$text = CONF_FILES_IMG_WATERMARK_TEXT;
// файл шрифта
$font = 'core/fonts/' . CONF_FILES_IMG_WATERMARK_FONT;
if (!@file_exists($font)) {
self::setError(ERROR_FILE_NOT_FOUND_FONT);
return false;
}
// Если кодировка не windows-1251 преобразовуем текст в юникод
if (strtolower(CONF_DEFAULT_CHARSET) === 'windows-1251') {
$text = strings::WinToUtf8($text);
//$text = strings::Utf8ToWin($text);
}
// создем дескриптор изображения
if (!($resImg = self::createImgFromFile())) {
self::setError(ERROR_FILE_CREATE_WATERMARK);
return false;
}
// получаем обрамляющий бокс водяного знака
$wmBox = @ImageTtfbBox(CONF_FILES_IMG_WATERMARK_FONT_SIZE, 0, $font, $text);
// получаем размеры загруженного изображения и размер водяного знака
$srcWidth = @ImageSX($resImg);
$srcHeight = @ImageSY($resImg);
$wmWidth = abs($wmBox[2]);
$wmHeight = abs($wmBox[5]);
// если водяной знак больше изображения, оставляем без водяного знака
if ($srcWidth < $wmWidth) {
return true;
}
// определяем координаты размещения водяного знака
$margin = 10;
$alignment = explode(':', CONF_FILES_IMG_WATERMARK_ALIGNMENT);
// если вдруг расположение получено не правильно, устанавливаем значение по дефолту
if (count($alignment) != 2) {
$alignment = array(0 => 'L', 1 => 'B');
}
// определяем координату X
switch ($alignment[0]) {
case 'L':
default:
$x = $margin;
break;
case 'C':
$x = (int) abs($srcWidth / 2 - $wmWidth / 2 + $margin);
break;
case 'R':
$x = (int) abs($srcWidth - $wmWidth - $margin);
break;
}
// определяем координату Y
switch ($alignment[1]) {
case 'T':
default:
$y = $margin + 30;
break;
case 'M':
$y = (int) abs($srcHeight / 2 - $wmHeight / 2 + $margin);
break;
case 'B':
default:
$y = (int) abs($srcHeight - $wmHeight - $margin);
break;
}
// определяем цвет текста
$rgb = strings::colorHexToDec(CONF_FILES_IMG_WATERMARK_FONT_COLOR);
$txt_color = ImageColorAllocateAlpha($resImg, $rgb[0], $rgb[1], $rgb[2], CONF_FILES_IMG_WATERMARK_TRANSPARENT);
// накладываем водяную марку на изображение
@ImageTtfText($resImg, CONF_FILES_IMG_WATERMARK_FONT_SIZE, 0, $x, $y, $txt_color, $font, $text);
// сохраняем результат в файл
if (!self::saveImgToFile($resImg, self::$arrImgSubj['full_path'])) {
self::setError(ERROR_FILE_CREATE_WATERMARK);
return false;
}
// уничтожаем дескриптор
@ImageDestroy($resImg);
return true;
}