vasearu
?>

Рисунок размером 1024*512 пикселей сохранили в виде несжатого файла размером 1.5 мб. какое количество информации было использовано для кодирования цвета пикселя? каково максимальное число цветов в палитре, соответствующей такой глубине цвета?

Информатика

Ответы

Zimin1111

простая, недавно здесь подобную решал. чтобы её решить, нужно знать несколько базовых положений.

 

1. для отображения цветовой гаммы, как правило, исользуется 3 цвета(красный, зелёный, синий).

2. если для цвета выделено n бит, он может принимать 2^n оттенков. (это чистая (

3. как следствие, макс количество цветов в палитре 2^n*2^n*2^n = 2^(3n)

 

теперь можно решать .

 

пусть под цвет выделено n бит.

так как всего цветов 3, на один пиксел будет 3*n бит, следовательно, общий объем рисунка будет

1024 * 512 *( 3*n) = 512 k *(3*n)   = (1.5*n)mбита (по определению 2^10 = 1024 = 1k) .

 

вот, в принципе, и всё!

дальше большие сложности, так как не понятно, что написано в условии, что такое мб - это мегабит или мегабайт, поэтому придётся рассматривать 2 случая

1. мегабит.

(1.5*n) = 1.5

n=1, то есть под цвет выделен 1 бит.

макс количество цветов в палитре

2^(3n) = 2^3 = 8.

да! всего 8 оттенков.

 

2. мегабайт, вспомним, что байт=8бит, получим

(1.5*n) = 1.5 *8, 

n=8, то есть под цвет выделен целый байт(8 бит)

макс количество цветов в палитре

2^(3n)= 2^24= 16777216.

 

вот и всё.

да, в реальности, в настоящее время, как правило, под цвет выделено один байт, то есть случай 2 полностью соответствует принятому в настоящее время стандарту де-факто и в пикселе 3 байта.

 

alfaantonk
Var       a, c: integer; begin       randomize;       a : = random(99999 + 99999 + 1) - 99999;       writeln('исходное числo: ', a);                     while a > 0 do       begin               c : = c + a mod 10;               a : = a div 10;       end;             if (c mod 3 = 0) and ((a mod 10) mod 2 = 0) then               writeln(' число делится на 6')       else               writeln(' число не делится на 6'); end.
staskamolbio5152
Var       k: integer;       a, s: real; begin       write('начальная стоимость: ');       readln(a);       {write('число проданных газет:   ');       readln(k); }       k : = 200;             if k < = 50 then s : = k * a       else       begin               s : = 50 * a;               s : = s + (k - 50) * a * 1.2;       end;       writeln('выручка составила  ', s, ' руб.'); end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Рисунок размером 1024*512 пикселей сохранили в виде несжатого файла размером 1.5 мб. какое количество информации было использовано для кодирования цвета пикселя? каково максимальное число цветов в палитре, соответствующей такой глубине цвета?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Александровна
karinasy4ewa
printlublino
Агибалов428
Mikuspavel2
molodoychek
nsn-2012
Rinatum1978
vis-lyubov8832
yaelenatu
МихайловнаМетельков328
Виктория Нина
semenoffufc8
sharikplushelen
ЕленаГерасимова