В некоторых Canvassize невозможно создать объект Canvas, и я получаю несколько исключений.
По умолчанию узлы JavaFX визуализируются графическим оборудованием как текстуры. Различное графическое оборудование имеет разные пределы в максимальном размере, который может иметь одна текстура. Обычно этот размер размера текстуры составляет порядка 2, а общие максимумы для различного графического оборудования могут быть 8192x8192 или 16384x16384. По соображениям совместимости, вероятно, лучше всего предположить максимальный размер текстуры 8192x8192 или даже 4096x4096, если вы хотите быть очень консервативным.
Что делать, если у меня были большие размеры в голове?
Использование нескольких узлов в алгоритме черепицы. Например, создайте холст 32768x32768 с использованием массива 8x8, состоящего из 64 4096x4096 отдельных холстов. Вам нужно будет написать логику для обработки этого самостоятельно, нет существующей библиотеки, которая будет делать это для вас, насколько я знаю. Для чрезвычайно больших размеров, например. сотни тысяч или миллионы пикселей в поперечнике, то может оказаться полезным виртуализованный элемент управления, такой как GridView.
Кто-то сказал мне холст имеет более высокую производительность при работе с пиксельными массивами
Я сомневаюсь, что холст будет иметь лучшие характеристики, чем в WritableImage подкрепленную PixelWriter и PixelReader как холст необходимо для обслуживания более широкий и более сложный набор функций и функций. Тем не менее, для большинства приложений пользователи вряд ли заметят существенную разницу между производительностью холста и WritableImage, и вам, вероятно, следует выбирать между ними на основе наилучшего функционального соответствия вашему приложению.
В качестве одного из рекомендаций, при работе с изображениями на уровне пикселей, необходимо выбрать подходящий PixelFormat, который изначально используется вашим графическим оборудованием, поскольку это уменьшает объем копирования и преобразования данных пикселей, необходима базовая система рендеринга. Для получения дополнительной информации о понимании этого совета производительности обратитесь к соответствующему дискуссионному форуму Oracle JavaFX: Canvas performance.
С вашего вопроса непонятно, почему вы используете «Холст» во время разговора об изображениях. На мой взгляд, в JavaFX это означает «Image» и «ImageView». Просьба уточнить. – hotzst
Кто-то сказал мне, что холст обладает лучшей производительностью при работе с пиксельными массивами – user6272596