Справка DIGIMINE

Диалог "Объединение выделенных Bitmap"

Диалог "Объединение выделенных Bitmap"

Previous topic Next topic  

Диалог "Объединение выделенных Bitmap"

Previous topic Next topic  

 

 

Для объединения нескольких полигонов с Bitmap в один прямоугольный полигон (со сторонами, параллельными сторонам окна), с одной общей Bitmap необходимо выделить нужные полигоны в режиме Работа с выделенными полигонами и затем, во всплывающем меню,  выбрать пункт меню Bitmap/Объединить выделенные Bitmap в одну… .

 

Полигоны у всех исходных Bitmap должны быть прямоугольниками или параллелограммами.

 

Появится диалог "Объединение выделенных Bitmap":

 

 

В объединении могут участвовать Bitmap с разным максимально возможным количеством цветов. Максимальное количество цветов в Bitmap определяется параметром Бит / пиксель – количество бит, занимаемых одной точкой Bitmap. Чем меньше количество бит, отводимых под каждый пиксель, тем меньше количество возможных цветов в Bitmap и меньше размер памяти, занимаемой Bitmap.
Возможные значения бит/пиксель (в скобках количество цветов) : 1 (2), 4 (16), 8 (256) , 16 (65536), 24 (16777216) или 32.

 

В программе используются следующие правила для определения параметра Бит/пиксель для получаемой объединенной Bitmap:

 

- если все Bitmap, участвующие в объединении, имеют по 8 бит/пиксель, то объединенная Bitmap может иметь либо 8 бит/пиксель либо 24 бит/пиксель, что задается в рассматриваемом диалоге.

 

- во всех остальных случаях объединенная Bitmap будет иметь 24 бит/пиксель.

 

При необходимости 24-битную Bitmap можно преобразовать в 8-битную (или другую) в диалоге "Параметры Bitmap".

 

В том случае, когда объединенная Bitmap будет 8-битной, для нее используется цветовая палитра (таблица 256 цветов) из одной Bitmap, участвующей в объединении – либо той, которая отрисовывается первой, либо той, которая отрисовывается последней.

 

 

Например, имеются две 8-битных Bitmap:

 

Зададим получение 8-битной Bitmap на основе цветовой палитры Bitmap, отрисовываемой первой (в нашем случае левой) Bitmap:

 

Объединение с использованием цветовой палитры Bitmap, отрисовываемой последней (правой), даст следующий результат:

 

Как видим, имеет место некоторое изменение цвета для той Bitmap, для которой использовалась не ее исходная палитра. Чем сильнее будут различаться исходные палитры, тем больше будет изменение цвета точек.

Во многих случаях, когда объединяемые 8-битные Bitmap имеют схожие палитры, получение 8-битной объединенной Bitmap дает вполне приемлемые результаты.

 

 

 

Для того чтобы получить объединенную Bitmap, не имеющую изменений цветов, связанных с цветовой палитрой, следует задавать получение 24-битной Bitmap.

В такой Bitmap, изменения цветов будут только те, которые возникают из-за пересчетов, связанных с разным размером пикселей исходных Bitmap, сдвигом исходных Bitmap (относительно начала объединенной Bitmap) на величину, не кратную размеру пикселя, а также наклонным расположением пикселей.

Для приведенных выше исходных Bitmap объединенная 24-битная будет выглядеть следующим образом:

 

После получения 24-битной Bitmap и последующего преобразования ее в 8-битную, получим:

 

Объединение в 24-битную Bitmap с последующим преобразованием в 8-битную позволяет уменьшить  изменение цветов в объединенной Bitmap, по сравнению со способом, когда сразу получается 8-битная объединенная Bitmap по цветовой палитре одной из исходных Bitmap.

 

Получить 256-цветную палитру просто на основе исходных палитр, без полученного полноцветного изображения, проблематично, так как в палитре неизвестна значимость каждого цвета. К тому же до получения объединенной Bitmap неизвестно, какие новые цвета появятся в процессе преобразований.

При преобразовании из 24-битной Bitmap в 8-битную учитываются несколько факторов, позволяющих (в пределах возможного) минимизировать изменения в визуальном восприятии получаемого изображения.

 

 

 

 

В рассматриваемом диалоге "Объединение выделенных Bitmap"  также задается, каким цветом закрасить области объединенного полигона, в которые не попадает ни одна из выделенных Bitmap.

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

 

 

После объединения получается прямоугольный полигон со сторонами, параллельными сторонам окна.

 

Объединенный полигон с Bitmap записывается в текущий основной файл.

 

Те исходные полигоны c Bitmap, которые были в основном файле, удаляются, а те, которые были в дополнительных файлах – не изменяются.

 

Размер пикселя объединенной Bitmap будет примерно равен наименьшему размеру пикселя исходных Bitmap.