См. индивидуальный вид и обработку окна в приложении Ensemble Sample , который включает исходный код. Загрузите источник , создайте его и запустите его как отдельное приложение, а не встроенное в браузер. Это не будет то, о чем вы просите, потому что такие вещи, как перетаскивание на верхний край экрана, чтобы активировать максимизацию, не будут работать, я думаю, но это должно быть очень близко, и вы всегда можете что-то кодировать, когда его тянули около верхнего края. Окно Ensemble имеет такие функции, как пользовательские изменения размера, минимизация, максимизация, закрытие значков, область в верхней части окна, которую вы можете использовать для перетаскивания окна или двойного щелчка, чтобы максимизировать или минимизировать окно - то есть большинство стандартных функций, которые вы будет ожидать от системы оконного оформления рабочего стола.
Чтобы получить что-то еще ближе к тому, что вы просите, возможно, вы могли бы что-то взломать, создав два окна. Один, стандартное оформленное окно сцены, которое включает в себя границы экрана, а другое - незадекларированный или прозрачный дочерний этап, который всегда отображается поверх главного окна и накладывает границы главного окна с помощью индивидуального рендеринга. Я думаю, что вы можете столкнуться с трудностями, пытаясь реализовать этот подход, поэтому я бы не рекомендовал его.
Возможно, вам захочется попробовать стиль UNDECORATED stage, а не TRANSPARENT, и посмотреть, улучшится ли ваша встроенная интеграция с Windows с этим.
В JFK8, в настоящее время запланирован некоторый открытый запрос функции, который будет поставляться с JDK8, Windows: поддержка эффектов Aero Glass для окон верхнего уровня , Mac: Поддержка стиля NSTexturedBackgroundWindowMask для окон и . Сплошной белый фон, созданный на сцене, должен быть создан - при необходимости - в Scenegraph , который, когда он будет реализован, скорее всего поможет вам достичь вашей цели - проголосовать за них, если такие функции важны для вас.
[/g8]
Также проверка VFXWindows , которая представляет собой структуру оконного кода с открытым исходным кодом для JavaFX.
Обновление
Также связан проект Undecorator , который позволяет вам легко создавать этап JavaFX со стандартным d минимизировать / максимизировать / закрыть / изменить размеры элементов управления хромом, которые обрабатываются с помощью механизма JavaFX, а не системы оконной ОС. Это позволяет вам достичь определенного пользовательского контроля над рендерингом окна, которое отображает такое приложение, как Ensemble.
При работе с бинарными данными вам нужно как можно больше стараться оставаться в бинарном режиме, тем более что нет гарантии, что выбранная вами кодировка строки в любом случае может представлять все значения.
Просто помните, что 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))
(Я знаю, что логика замены может быть написана как понимание списка, но я подумал, что это будет более дружелюбно, как это.)