Python3 преобразование двоичных данных в строку и обратно

См. индивидуальный вид и обработку окна в приложении Ensemble Sample , который включает исходный код. Загрузите источник , создайте его и запустите его как отдельное приложение, а не встроенное в браузер. Это не будет то, о чем вы просите, потому что такие вещи, как перетаскивание на верхний край экрана, чтобы активировать максимизацию, не будут работать, я думаю, но это должно быть очень близко, и вы всегда можете что-то кодировать, когда его тянули около верхнего края. Окно Ensemble имеет такие функции, как пользовательские изменения размера, минимизация, максимизация, закрытие значков, область в верхней части окна, которую вы можете использовать для перетаскивания окна или двойного щелчка, чтобы максимизировать или минимизировать окно - то есть большинство стандартных функций, которые вы будет ожидать от системы оконного оформления рабочего стола.

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

Возможно, вам захочется попробовать стиль UNDECORATED stage, а не TRANSPARENT, и посмотреть, улучшится ли ваша встроенная интеграция с Windows с этим.

В JFK8, в настоящее время запланирован некоторый открытый запрос функции, который будет поставляться с JDK8, Windows: поддержка эффектов Aero Glass для окон верхнего уровня , Mac: Поддержка стиля NSTexturedBackgroundWindowMask для окон и . Сплошной белый фон, созданный на сцене, должен быть создан - при необходимости - в Scenegraph , который, когда он будет реализован, скорее всего поможет вам достичь вашей цели - проголосовать за них, если такие функции важны для вас.

Ensemble Sample Application [/g8]

Также проверка VFXWindows , которая представляет собой структуру оконного кода с открытым исходным кодом для JavaFX.

Обновление

Также связан проект Undecorator , который позволяет вам легко создавать этап JavaFX со стандартным d минимизировать / максимизировать / закрыть / изменить размеры элементов управления хромом, которые обрабатываются с помощью механизма JavaFX, а не системы оконной ОС. Это позволяет вам достичь определенного пользовательского контроля над рендерингом окна, которое отображает такое приложение, как Ensemble.

0
задан Asymetr 26 February 2019 в 13:33
поделиться

1 ответ

При работе с бинарными данными вам нужно как можно больше стараться оставаться в бинарном режиме, тем более что нет гарантии, что выбранная вами кодировка строки в любом случае может представлять все значения.

Просто помните, что bytes объекты в основном представляют собой списки 8-битных целых чисел без знака, даже если они имеют удобный строковой синтаксис b'xyz'.

filein = "download.jpeg"
fileout = "glitch.jpg"

with open(filein, "rb") as rd:
    img = rd.read()
    # We can happily crash here if there's no FFDA; 
    # that means we're not able to process the file anyway
    prelude, marker, scanimg = img.partition(b"\xff\xda")
    scanglitch = []

    for letter in scanimg:  # scanimg is a list of integers, so we have to use `ord()`
        if letter != ord("a"):
            scanglitch.append(letter)
        else:
            scanglitch.append(ord("e"))

with open(fileout, "wb") as wr:
    wr.write(prelude)
    wr.write(marker)
    wr.write(bytes(scanglitch))

(Я знаю, что логика замены может быть написана как понимание списка, но я подумал, что это будет более дружелюбно, как это.)

0
ответ дан AKX 26 February 2019 в 13:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: