Как установить размер окна DMG и фон с помощью задачи муравья javapackager - PullRequest
0 голосов
/ 10 ноября 2018

После долгой борьбы мне удалось сгенерировать (используя Ant) в MacOSX (Yosemite) DMG (модульное приложение JavaFX, которое развертывается в папку *.app) даже с пользовательскими значками приложения и томом DMG (оба хранятся как * 1002). * файлы в папке package/macosx сборки). Перетаскивание работает, оно устанавливает приложение, приложение запускается, так что все в порядке. Ну, почти.

У меня был соблазн сделать также собственный фон для DMG. Он помещается вместе со значками в папке package/macosx в виде файла App-background.png (где часть App - это имя моего приложения, как и с иконками). И javapackager на самом деле подбирает фон, но, к сожалению, после открытия DMG фон, кажется, помещается в верхний левый угол окна, само окно как бы вдвое больше фона, поэтому 3/4 фона окна просто белый.

Я пробовал с разными размерами PNG, но безрезультатно. Окно DMG всегда намного больше, чем изображение.

Есть ли способ заставить javapackager (он же fx:deploy, который я на самом деле использую) генерировать DMG с правильными настройками, которые просто приводят окно DMG к размеру фона?

Редактировать : Похоже, что окно DMG на самом деле имеет размер PNG (исходный фоновый файл), но по какой-то причине изображение, отображаемое в качестве фона, "слегка" уменьшено.

1 Ответ

0 голосов
/ 11 ноября 2018

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

Видимо, есть некоторая проблема с Finder, обрабатывающая PNG при отображении файла DMG. Все сводится к блоку pHYs, который содержит 3 поля (4b, 4b и 1b соответственно). Это пиксели на единицу на оси x, пиксели на единицу на оси y и 0 или 1 на единицу (0 без единицы, 1 за метр). Игра с этими значениями (через hex-редактор) каким-то образом изменила масштабирование (и размер окна), но я не смог определить правильные значения. В итоге Я полностью избавился от этого чанка (экспорт из GIMP в формате PNG без сохранения разрешения ), и это решило проблему.

Так что для любого, кто борется с этим: просто убедитесь, что в файле PNG нет pHYs чанка .

Редактировать : Это легко сделать с помощью ImageMagick:

$ convert image.png -define png:exclude-chunk=pHYs image.png

Это удаляет фрагмент pHY из файла image.png.

...