Bitplan

Obraz w skali szarości (po lewej) i 8 odpowiadających mu bitplanów, od pierwszego do ósmego (po prawej)

Bitplan – prostokątny obszar o określonym rozmiarze, składający się z pól bitowych tworzących mapę bitową. Każdy obraz składa się z co najmniej jednego bitplanu; z im większej liczby bitplanów składa się obraz, tym większą reprezentuje głębię koloru. Pojęcie „bitplane” jest czasem używane jako synonim bitmapy, jednak z technicznego punktu widzenia pierwsze pojęcie odnosi się do lokalizacji danych w pamięci, a drugie do samych danych[1].

Przykładowo, obraz z 8-bitowym kolorem jest tworzony przez 8 bitplanów – pierwszy bitplan składa się z najbardziej znaczących bitów, a 8. z najmniej znaczących bitów kolorów poszczególnych pikseli tego obrazu. Jeśli obraz jest -bitowy, a bit -tego bitplanu jest ustawiony na 1, to reprezentuje on w obrazie wartość Przykładowo piksel obrazu 8-bitowego ma kolor o wartości 166, czyli binarnie 10100110, wtedy odpowiadające mu bity w poszczególnych bitplanach będą następujące:

Numer
bitplanu
Wartość
bitu
Wartość udziału
w kolorze piksela
Wartość
sumaryczna
1.11 × 27 = 128128
2.00 × 26 = 0128
3.11 × 25 = 32160
4.00 × 24 = 0160
5.00 × 23 = 0160
6.11 × 22 = 4164
7.11 × 21 = 2166
8.00 × 20 = 0166

Bitplan był podstawowym elementem grafiki w komputerach Amiga.

Zobacz też

Przypisy

  1. Bit Plane. FOLDOC. [dostęp 2018-10-23].

Media użyte na tej stronie

Lichtenstein bitplanes.png
Autor: Alessio Damato, Licencja: CC-BY-SA-3.0

the grayscale picture on the left is the original image, the 8 binary images on the right are the bit-planes of the original one. They are 8 because the input has 8 bit/pixel. I have created them in the following way. first I have used the Image:Lichtenstein img processing test.png test image, saving it on my harddisk as "castle.png". Then I have used the following Matlab code:

clear all

% read image
img=imread('castle.png');

% convert it to grayscale
img=rgb2gray(img);

img=imresize(img,0.5,'bicubic');

[x,y]=size(img);

bitplanes=zeros(x,y,8);

for i=1:x
    for j=1:y
        binary=de2bi(img(i,j),8,'left-msb');
        for k=1:8
            bitplanes(i,j,k)=binary(k);
        end
        
    end
end

imwrite(img,'original.png'); % original grayscale image
imwrite(bitplanes(:,:,1),'bit1.png'); % MSB
imwrite(bitplanes(:,:,2),'bit2.png');
imwrite(bitplanes(:,:,3),'bit3.png');
imwrite(bitplanes(:,:,4),'bit4.png');
imwrite(bitplanes(:,:,5),'bit5.png');
imwrite(bitplanes(:,:,6),'bit6.png');
imwrite(bitplanes(:,:,7),'bit7.png');
imwrite(bitplanes(:,:,8),'bit8.png'); % LSB
then I put them all together using GIMP. I have optimized the PNG using optipng.