Меню сайта
   Главная   
   Обо мне   
   Статьи   
   Дневник   
   Картинки   
   Файлы   
   Форум   
   Гостевая книга   

Категории раздела
Куклы и игрушки [60]
Личное [115]
Музыка [19]
Общее [302]
Японский язык [12]
ZX Spectrum [69]
Субмарины [98]
Настольные игры [34]
Го (碁) [11]
Книги [16]
Япония [26]
Таро [4]
Запертый шкаф [17]
CSA (КША) [15]
GNU/Linux [130]
Ubuntu [103]
Manjaro Linux [39]
Python [3]
Магнитольное [44]
Commodore64 [12]
Игровые приставки [2]


 
Дневник (2021 » Январь » 23 в 21:19)
GNU/Linux Заблюренные логотипы в фильмах

Люди — странные нелогичные существа. Вот одни дебилы на телевидении налепили логотип на картинку, и осталась в доступе только такая версия фильма. Затем другие дебилы решили это "исправить", и замазали логотип "прозрачным слоем", из-за чего он стал отвлекать и раздражать ещё больше.

На скриншоте угол экрана с замазанным логотипом. Это крайне удачный кадр, другие куда хуже, их даже в статике не покажешь, настолько это мешанина из заблюреных пикселей.

Оригинальный логотип хоть не мерцает и не отвлекает непрерывно глаз, а это убожество берёт цвета для заливки с боков, и если фон не статичный, то постоянно их меняет. Выглядит это настолько убого, что я уже начал просто заклеивать экран в месте этого непотребства изолентой, чтобы не отвлекаться.

Но это не наш метод! А как же linux-way, спросил я себя и бросил клич. Нашлось целых два варианта.

Задача - прикрыть мерцающий блок сверху ещё одним полупрозрачным, снизив таким образом интенсивность мерцания.

Первый - запуск mpv с отрисовкой поверх картинки полупрозрачного блока по заданным координатам:

mpv '--vf=lavfi="drawbox=x=10:y=10:w=100:h=100:color=black@0.6:t=fill"' ИМЯ_ВИДЕОФАЙЛА

Есть минус - нужно заранее вычислять координаты, запускать mpv отдельно от smplayer, либо изменять конфигурацию каждый раз, когда нужен блок.

Второй метод - отдельный скрипт.
Как создать маленькое полупрозрачное окно? 
С Qt 5.15, технологией QtQuick и языком программирования QML очень просто. (q) EXL
Запускается из консоли, отрисовывает по дефолтным координатам прямоугольный полупрозрачный блок, который можно перетаскивать и изменять размер мышью, колёсиком менять степень прозрачности. Я решил, что это самый универсальный метод.

Создать файл overlay.qml со следующим содержимым:

import QtQuick 2.12
import QtQuick.Window 2.12

Window {
    color: Qt.rgba(0.0, 0.0, 0.0, 0.5)

    id: window
    visible: true
    flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WA_TranslucentBackground

    Shortcut {
        sequence: "Esc"
        onActivated: window.close()
    }

    DragHandler {
        id: resizeHandler
        onActiveChanged: if (active) {
            const p = resizeHandler.centroid.position
            let e
            if (p.x / width  < 0.10) { e |= Qt.LeftEdge }
            if (p.x / width  > 0.90) { e |= Qt.RightEdge }
            if (p.y / height < 0.10) { e |= Qt.TopEdge }
            if (p.y / height > 0.90) { e |= Qt.BottomEdge }
            if (e) { window.startSystemResize(e) } else { window.startSystemMove() }
        }
    }

    MouseArea {
        anchors.fill: parent
        property real op: 0.5
        onWheel: {
            if (wheel.angleDelta.y > 0 && op < 1.0)
                op += 0.01
            else if (wheel.angleDelta.y < 0 && op > 0.0)
                op -= 0.01
            window.color = Qt.rgba(0.0, 0.0, 0.0, op)
        }
    }
}



Запуск программы:
QT_QPA_PLATFORM=xcb qmlscene Overlay.qml

Достигнуты все поставленные условия:
  • Простой строкой в консоли создать окно без всяких декораций.
  • Полупрозрачное по заданному проценту.
  • Поверх всех окон.
  • Оно должно перетаскиваться мышой.
  • Должен изменяться размер.
  • Выглядит просто как полупрозрачный прямоугольник.

Цвет и полупрозрачность прямоугольника настраивается в функции Qt.rgba(0.0, 0.0, 0.0, 0.5), изначально установлена в 50%, первые три компоненты отвечают за цвет в RGB-формате. Таскать окно по экрану можно зажав кнопку мыши в центре окна и перемещая курсор, размер изменяется аналогичным образом но по краям прямоугольника. На клавишу Esc задан выход.

Категория: GNU/Linux | Просмотров: 258 | Добавил: harushima | Рейтинг: 0.0/0 |
Всего комментариев: 0.
В целях защиты от спама, добавлять комментарии могут только зарегистрированные пользователи. Если Вы не хотите регистрироваться под своим именем, войдите под логином: anonymous, паролем: anonymous.   ( Регистрация,   Вход).
Авторизация
Анонимный вход:
anonymous / anonymous
Логин:
Пароль:

Календарь
«  Январь 2021  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031

Поиск

Облако тэгов
JGSDF игрушки Брюнетки Кладбище сайты Ярость Дракулы Древний Египет девушки кошки Cthulhu Вампиры Kitsune Ужас Аркхема инструмент комиксы Lovecraft готика Submarine submarine rc toy Hosting игротека Ужас Аркхэма book uboat мобильная связь го Edgar Poe swf Mansions of Madness Nightmares персоны Synergy linux-hardware bash youtube Storages Python Мастер-рукожоп Магнитофоны Entropy Grub2 loglevel WiFi Beeline ОПСОСЫ sharp939 Аудиокассеты Windows linuxwork Хочуны ImageMagick топБарыг C64c Commodore

Статистика
Яндекс.Метрика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Page QR code


Перепечатка материалов сайта без активной ссылки запрещена. Следить за RSS
(c) hermitlair.ucoz.com 2009-2024
Лучший браузер!
Блокировка рекламы