Конвертировать hex в rgb с эквивалентом parseint - PullRequest
0 голосов
/ 30 января 2020

У меня есть функция JS, которая преобразует значение HEX в значение RGB. Мне было интересно, можно ли сделать то же самое в Twig. Я использую платформу, которая не поддерживает значения rgb (a) (да, я знаю).

Я знаю, что есть несколько плагинов для этого в Twig, но это не вариант Это просто вопрос, если это возможно сделать и для целей обучения. Я не могу изменить платформу, которую я использую.

Функция JS

  function hexToRGB(hex, alpha) {
    var r = parseInt(hex.slice(1, 3), 16),
        g = parseInt(hex.slice(3, 5), 16),
        b = parseInt(hex.slice(5, 7), 16);
    if (alpha) {
        return "rgba(" + r + ", " + g + ", " + b + ", " + alpha + ")";
    } else {
        return "rgb(" + r + ", " + g + ", " + b + ")";
    }
}
$(function(){
  hexToRGB('#FF0000', 0.5);
});

Что я пытался сделать в Twig:

{% set hex = 'FF0000' %}
{% set r = hex | slice(1, 2) | number_format %}
{% set g = hex | slice(2, 4) %}
{% set b = hex | slice(4, 6) %}

{% set hexToRGB = 'rgba('~ r ~',' ~ g ~',' ~ b ~', 0.5)' %}

{{ hexToRGB }}

Проблема, с которой я сталкиваюсь, заключается в parseint нарезанном значение для числа. В Twig всегда возвращает FF в качестве значения. Так как же вы можете преобразовать FF в Twig в числовое значение c (в данном случае 255 для белого) так же, как вы делаете с parseint ??

Есть идеи? Спасибо заранее ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...