41228

Восьмиточечная графика

Лекция

Информатика, кибернетика и программирование

Графика, выводимая с помощью матричных ПУ, представляется в виде отдельных точек, формирующих изображение. Графическое изображение ПУ выводит построчно, обычно строки графики расположены вплотную друг к другу. Графическая строка состоит из вертикальных колонок. Высота колонки может быть 8, 9 или 24 точки.

Русский

2013-10-23

1.09 MB

0 чел.

Графика

Графика, выводимая с помощью матричных ПУ, представляется в виде отдельных точек, формирующих изображение. Графическое изображение ПУ выводит построчно, обычно строки графики расположены вплотную друг к другу. Графическая строка состоит из вертикальных колонок. Высота колонки может быть 8, 9 или 24 точки.

Восьмиточечная графика

Восьмиточечная графика может печататься как на 9- так и на 24-точечных принтерах. В графических данных каждая колонка строки описывается одним байтом. В 9-точечном принтере каждому биту байта, описывающего колонку, соответствует одна игла: старшему биту — верхняя (первая), младшему — нижняя (восьмая). Если соответствующий бит равен единице, то печатается точка, в противном случае — нет. Десятичное значение байта графических данных, задающего колонку, можно получить суммируя "веса", приведенные в табл.

Таблица 5.5. Распределение игл в 9-точечных устройствах для 8-точечной графики

Номер иглы

Бит

«Вес»

Номер иглы

Бит

«Вес»

1

7

128

5

3

8

2

6

64

6

2

4

3

5

32

7

1

2

4

4

16

8

0

1

Рис.  Связь между точечными данными и задействованием иголок в печатающей головке

Если бит содержит " 1 ", то активизируется соответствующая иголка печатающей головки.

Имеются, например, следующие данные:

Поле с "." означает "1", а свободные поля - "0".

При эмуляции 24-игольчатыми принтерами режимов 8-точечной графики данные задаются точно так же, как и для 9-игольчатых принтеров. Распределение иголок (т.е. соответствие иголок битам) в этом случае в Epson-ориентированных принтеров и ПУ семейства Proprinter отличается. Первые используют каждую третью иглу, начиная с верхней, а вторые используют иглы по особой схеме, приведенной в табл. 5.6.

Таблица 5.6. Распределение игл в 24-точечных устройствах семейства Proprinter при эмуляции 8-точечной графики

Номер иглы

Бит байта данных

Номер иглы

Бит байта данных

1

2

3

4

5

6

7

8

9

Бит 7

Бит 7

Бит 7 & Бит 6 Бит 6

Бит 6

Бит 5

Бит 5

Бит 5 & Бит 4 Бит 4

11

12

13

14

15

16

17

18

9

Бит 3

Бит 3

Бит 3 & Бит 2 Бит 2

Бит 2

Бит 1

Бит 1

Бит 1 & Бит 0 Бит 0 Бит 0

10

Бит 4

20

Бит 0

   

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

Таблица .       Режимы 8-точечной графики

Режим

Максимальное число колонок в строке длиной

Код

Плотность, (точка/дюйм)

8 дюймов

13 дюймов

0

Одинарная (60)

480   

810

1

Двойная (120)

960

1620

2

Двойная с высокой скоростью (120)

960

1620

3

Четырехкратная (240)

 

1920

3240

4

Плотность ЭЛТ I (80)

640

1080

5

Одинарная плотность графопостроителя (72)

 576

972

6

Плотность ЭЛТ II (90)

     720

 990

7

Двойная плотность графопостроителя (144)

1152

1944

* В этих режимах печать соседних точек невозможна. Если эти точки встречаются в описании   графического изображения, то они исключаются автоматически.

Команды 8-точечной графики имеют следующий формат:

ESC <тип графики> n1 n2 <данные>

где <тип графики> — определяет горизонтальную плотность графического изображения и скорость печати; n1 и n2 число колонок графики, вычисляемое по формуле 256*n2 + n1; <данные> — байты, описывающие колонки в графической строке.

С помощью команды этого формата можно выбрать четыре типа графики, <тип графики> - { К | L | Y | Z }:

ESC К — графика одинарной плотности;

ESC L — графика двойной плотности;

ESC Y — графика двойной плотности на высокой скорости;

ESC Z — графика четырехкратной плотности.

Var

Graph_type  :  char;

Procedure  Print_Graph;

var  i,j  :  Integer;

begin

  write( Lst,   ‘--------------------------- ESC ',Graph_type);

writeln( Lst,   ‘---------------------------‘);

writeln( Lst);

for i:=l  to  5  do

begin

write(Lst, #27,  Graph_type,#80, #0):

for  j:=l  to 80 do write(Lst, #255);

writeln(Lst);

end;

for i:=l  to 3 do

begin

write(Lst,  #27, Graph_type, #240, #0):

for j:= 1 to 30 do

write(Lst, #$18, #$3C, #$7E, #&FF, #&FF, #&7E, #&3C, #&18);

writeln(lst);

end:

for i:=l  to 5 do

begin

write(Lst, #27, Graph_type, #10,#0,#34, #80, #138, #0);

write(Lst, #134,#0,#138,#80,#34,#0., ' ');

end;

writeln(Lst):

writeln(Lst, #0, #10):

end;

begin

Graph_type:='K';

Print_Graph:

Graph_type:='L':

Pr1nt_Graph;

Graph_type:='Y':

Pnnt_Graph:

Graph_type:='Z';

Print_Graph;

end;  


Точечный режим ESC К

Этот режим позволяет выводить на начать точечные данные с нормальной плотностью и числом позиций печати не более 480. Указанный режим устанавливается при вводе кодовой последовательности

ЕSС К n1 n2,

где К соответствует коду 7510, а n1 и n2 – коды, соответствующие количеству точечных данных (позиций) в строке. При заданном количестве N точечных данных (позиций) в строке n1=Nmod256, n2=Nint(N/256), т.е. n1 равно остатку, а n2 - целой части от деления N на 256. По окончании точечного режима принтер автоматически возвращается в текстовый режим.

Пример       N=240  или  128+64+32+16

n1=240,  n2=0;

N=480=224+256*1  ,    n1=480-256=224,  n2=1,  

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

Если передается больше графических данных, чем специфицировано в общем количестве N, то принтер автоматически переключается на текстовый режим.

В одной строке разрешается чередовать данные в текстовом и точечном режимах. Необходимо только принять во внимание максимальное количество печатных точек в строке. Установленные вид шрифта и ширина символов сохраняются.

В 24-игольчатых принтерах семейства Proprinter эти четыре режима реализуются командой формата:

ESC "[g" c1 c2 m <данные>,

где c1 и c2 — соответственно младший и старший байты счетчика, содержащего число байт графических данных плюс один, a m — код режима, О <= т <= 3 (см. табл. 5.7).

Для выбора всех режимов графики используется универсальная команда формата:

ESC "*" m n1 n2 <данные>

где m — код режима, 0 <= т <= 7 (см. табл. 5.7); n1, n2 — младший и старший байты числа колонок графики, вычисляемое по формуле 256*n2 + n1; <данные> — байты, описывающие колонки в графической строке.

const

Arr_Mode : array [0..7] of integer = (240.480,480,960,320.288,360.576);

var

i : byte;

Procedure Graph (Mode : byte; 1 : integer);

var i : Integer;

begin

write(Lst, ‘------------------------------- ESC * ',Mode);

writeln(Lst, ------------------------------- ‘);

writeln(Lst);

write(Lst, #27, '*', chr(Mode),chr(1 mod 256), chr(1 div 256));

for i:=l  to 1 do write(Lst, chr(i mod 128 +128));

writeln(Lst, #10, #10);

end;

begin

for i:=0 to 7 do Graph(i, Arr_Mode[i]);

end;

В устройствах RAVI-8010, D100-E, NR-15 режим двойной плотности графопостроителя не реализован. В устройствах ЕС7245 и ЕС7144 этот режим реализован на полускорости, поэтому печать соседних точек исключена. В принтерах фирмы Epson режим двойной плотности графопостроителя реализован на скорости меньшей, чем полускорость.

В 24-игольчатых принтерах (LQ-250+, Proprinter X24, Proprinter XL24) при эмуляции 8-точечной графики отсутствуют плотности графопостроителя (режимы 5 и 7, см. табл. 5.7).

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

ESC <тип графики> m

где <тип графики> - { 'К' | 'L' | 'Y' | 'V };   т — код режима, O <= m <=7.

После переназначения графики с помощью команды ESC ? при выборе режима, на который была переназначена графика другой плотности, будет устанавливаться переназначенный режим.

var i,j : integer;

begin

for i:=0 to 7 do begin

write(Lst,  'Плотность К на ',i,'  ‘#27, '?K',  chr(i));

write(Lst,  #27, 'K' ,#240, #0);

for j:=l to 80 do write(Lst,  #255, #0, #0);

writeln (Lst);

end;

end:

Девятиточечная графика

В 9-игольчатых принтерах существует возможность использования всех 9 игл для печати графических изображений с помощью команды ESC "^". Формат команды:

ESC "^" т n1 n2 <данные>

где m определяет плотность печати (0 — одинарная, 1 — двойная); n1 и n2 определяют общее число колонок так же, как для 8-точечной графики.

При задании 9-точечной графики число байт графических данных должно быть равно числу колонок, умноженному на два, так как каждая колонка описывается в этом случае двумя байтами: в первом байте содержится информация о 8 верхних иглах (они описываются как для 8-точечной графики), а в старшем бите второго байта — о нижней девятой игле.

var

i, j : integer;

с : char;

begin

for 1:=1 to 5 do begin

for j:=0 to 1 do begin

write(Lst, #27, ‘^’, chr(j), #10, #0, #0, #128, #l, #128);

write(Lst, #2, #l28, #4, #128, #8, #128, #16, #28, #32);

write(Lst, #128, #64, #128, #128, #128, #0, #0):

end;

end;

write1n(Lst, #10):

end:

5.2.3. Двадцатичетырехточечная графика

При работе с 24-точечной графикой число байт в графических данных равно числу колонок, умноженному на три. Для каждой колонки иглы с 1 по 8 описываются первым байтом, с 9 по 16 — вторым и с 17 по 24 — третьим (табл. 5.8).

Таблица 5.8. Распределение игл при печати 24-битовых графических образов

Номер иглы

Бит

Вес

Номер иглы

Бит

“Bec”

1, 9. 17

2, 10, 18

3, 11, 19

4, 12, 20

7

6

5

 4

128

64

32

16

5, 13, 21

6, 14, 22

7, 15, 19

8, 16, 24

3

2

1

0

8

4

2

1

В 24-игольчатых принтерах 8-точечная и 24-точечная графика реализуется одними и теми же командами: командой графики ESC "*" (Epson, IBM-G, IBM-P) или командой ESC "[g- (IBM-P).

В 24-игольчатых принтерах Proprinter X24 и Proprinter XL24 основным способом печати графических изображений является печать с адресацией всех точек — АРА-графика (АРА — All Point Adressable). Для перехода к этому способу печати необходимо поставить специальный микропереключатель устройства в положение, соответствующее АРА-графике. Восьмиточечная графика отображается с помощью 20 иголок печатающей головки по схеме, приведенной в табл. 5.6.

В табл. 5.9 приведены значения параметра m для режимов 24-точечной графики. При этом коды 8 — 12 соответствуют команде ESC "[g", а остальные — команде ESC "*".

В устройствах Proprinter X24 и Proprinter XL24 для доступа к режимам 4, б и 32 — 40 (см. табл. 5.9) необходимо поставить указанный микропереключатель в положение, соответствующее альтернативной графике (т.е. не АРА-графике, а графике, принятой в Epson-ориентированных системах).

Таблица 5.9. Режимы 24-битовой графики

Код Код

Плотность,

точка/дюйм

                            Название режима

8

9

11

12

32

33

38

39

40

60

120

180

360

60

120

90

180

360

Высокое разрешение для ESC "К"

Высокое разрешение для ESC "L"

Высокое разрешение для тройной плотности

Высокое разрешение для шестикратной плотности

Высокое разрешение для ESC "К"

Высокое разрешение для ESC "L"

ЭЛТ III

Высокое разрешение для тройной плотности

Высокое разрешение для шестикратной плотности

В цветном принтере фирмы IBM существует возможность устанавливать масштабный коэффициент для графических изображений. Допускается установка коэффициентов 1:1 и 5:6, при этом по умолчанию принтером используется коэффициент 5:6, который соответствует масштабному коэффициенту дисплея. Эта возможность позволяет копировать графический экран без искажения.

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


5.2.4. Сочетание команд программирования графического изображения с другими командами

Команды графики могут поступать, чередуясь с другими командами. Не только в одном тексте, но и в одной строке могут печататься несколько графических изображений с одной или разными плотностями. Графические изображения сочетаются с текстом, выводимым в разных режимах печати.

Число посылаемых графических данных должно точно соответствовать числу данных, зарезервированному в используемой графической команде. Если графических данных послано больше, то избыточная часть их будет восприниматься принтером как коды символов. Если же графических данных послано меньше, то принтер остановится и будет ждать недостающие данные. В последней ситуации устройство ЕС7245 оказываются чувствительным к нажатию кнопок, a FX-800 — нет.

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

Обычно графическая картинка состоит из нескольких графических строк, расположенных вплотную друг за другом. Поэтому при работе с графикой необходимо изменить межстрочный интервал или передвигать бумагу с помощью команды прямой подачи бумаги (ESC "J").

var

i, j : integer;

begin

write(Lst, #27, 'A'.#7);

for j : = 1 to 2 do

begin

write(Lst, #27, 'L', #55.M);

for i : = 1 to 44 do write(Lst,   #0);

for 1 : = 45 to 55 do write(Lst, #255);

writeln(Lst);

end;

write (Lst, #27,'L', #65, #0);

for i := 1 to 34 do write(Lst, #0);

for i : = 35  to 65 do write(Lst,  #170);

writeln(Lst);

for j := 1 to 2 do

begin

write(Lst, #27, 'L', #75, #0);

for i := 1 to 24 do write(Lst, #0);

for i := 25 to 75 do write(Lst, #255);

write(Lst, #l3);

end;

write1n(Lst);

write(Lst, #27, 'K', #43, #0);

for i := 1 to 7 do write(Lst,  #0);

for 1 := 8 to 25 do write(Lst,  #85, #170);

writeln(Lst);

for j := 1 to 2 do

begin

write(Lst, #27,'L', #100, #0);

for i := 1 to 100 do  write(Lst, #255);

write(Lst, #13);

end;

writeln(Lst);

write(Lst, #27, 'K', #50, #O};

for i := 1 to 50 do write(Lst, #255);

end;

В устройствах RAVI-8010, RAVI-8010M, ЕС7245, EC7144 печать графических изображений производится только в одном направлении — слева направо, что связано с точностью печати.

Сочетание графической и символьной информации в одной строке значительно снижает скорость печати в принтерах FX-800 и FX-1000, это снижение связано с тем, что при переключении с символьной информации на графическую и наоборот происходят торможение и разгон печатающей головки. В устройствах ЕС7245 и EC7144 такие переключения практически не снижают скорости печати.

Печатающие устройства FX-800 и FX-1000 игнорируют сочетания ряда управляющих команд принтера с командами графики.

var

1 : integer;

begin

write(Lst, 'abcdefghijkimn'); {символы}

write(Lst, #27,'K', #30, #O): {графика}

for i := 1 to 15 do write(Lst, #170, #74);

write(Lst, '1234567890'); {символы}

write(Lst, #24); {отмена строки}

write(Lst, #27,'K', #30, #0); {графика}

for i := 1 to 15 do write(Lst, #255,#74);

write(Lst, #24); {отмена строки} end;

При чередовании в строке символов с графическими изображениями выравнивание (кроме выравнивания по левому полю) в принтерах FX-800, FX-1000, LQ-2500+ может быть выполнено некорректно.

После распечатки данных, предшествующих команде возврата на шаг BS, каретка сдвигается влево на ширину графического изображения.

var

i, j: integer;

begin

write(Lst, #27,'A', #7);

for j := 1 to 5 do begin

write(Lst, #27,'IC', #30, #0);

for 1:= 1 to 30 do write(Lst, #170};

write(Lst, #27, 'L', #60, #0);

for i:= 1 to 60 do write(Lst,  #170);

write(Lst, #8);

write(Lst, #27,'K', #60, #0);

for i := 1 to 60 do write(Lst, #85);

writeln(Lst);

end;

end;


 

А также другие работы, которые могут Вас заинтересовать

20694. Единая Европа: источники, образование, перспективы 136.5 KB
  ЕС является ключевым политическим и экономическим партнером России на Западе даже в условиях санкций. Особенно активно развиваются торгово-экономические связи. ЕС и Россия должны быть направлены на дальнейшее развитие конструктивного сотрудничества. В связи с этим понимание истоков, идей создания ЕС и его развитие является актуальным.
20695. ФОРМЫ УЧАСТИЯ ПРОКУРОРА В ГРАЖДАНСКОМ СУДОПРОИЗВОДСТВЕ В РК И ЗАРУБЕЖНЫХ СТРАНАХ 186 KB
  Дискуссия по поводу ограничения или, наоборот, усиления роли прокурора как в суде, так и в общем надзоре, не являются на сегодняшний день чем-то новым в истории прокуратуры, для которой характерен непрекращающийся поиск оптимальных форм осуществления полномочий.
20696. Розв’язання систем нелінійних рівнянь. Метод Ньютона 18.5 KB
  0001; J = [diffy1'x1' diffy1'x2' diffy1'x3' ; diffy2'x1' diffy2'x2' diffy2'x3' ; diffy3'x1' diffy3'x2' diffy3'x3' ]; p=[2;2;2]; x1=p1; x2=p2; x3=p3; dp=[inf;inf;inf]; while maxabsdp1:3 eps dp=[0;0;0]; Fk=[0;0;0]; Jk=evalJ; for i=1:3 Fki=evalFi:; end dp=invJkFk; p=pdp; x1=p1; x2=p2; x3=p3; end p 2.
20697. Криптографічна система RSA 54.28 KB
  5 зашифруємо повідомлення Створемо ключ Зашифруємо файл Відповідно до завдання лабораторної роботи проведемо розрахунки Повідомлення CRDHQS RSA p=5 q=7 N=57=35 p1q1=24 D=5 edmodp1q1=1 e5mod24=1 E=5 Ключ24 e =5 3^5 mod 35=33 18^5 mod 35=23 4^5 mod 35=9 8^5 mod 35=8 17^5 mod 35=12 19^5 mod 35=24 Зашифроване повідомлення 33 23 9 8 12 24 Розшифруєм повідомлення використовуючи ключ d=5 33 33^5 mod 35=3 23^5 mod 35=18 9^5 mod 35=4 8^5 mod 35=8 12^5 mod 35=17 24^5 mod 35=19 Висновки:...
20698. Розподіл ключів, протокол Діфф-Хеллмана 57.93 KB
  При роботі алгоритму кожна сторона: генерує випадкове натуральне число a закритий ключ спільно з віддаленою стороною встановлює відкриті параметри p і g зазвичай значення p і g генеруються на одній стороні і передаються іншій де p є випадковим простим числом g є первісних коренем по модулю p обчислює відкритий ключ A використовуючи перетворення над закритим ключем A = ga mod p обмінюється відкритими ключами з видаленою стороною обчислює загальний секретний ключ K використовуючи відкритий ключ видаленої сторони B і свій закритий ключ a...
20699. Еліптичні криві в криптографії 168.01 KB
  1КІ08 Морозов Артем Еліптична крива над полем K це множина точок проективної площини над K що задовольняють рівнянню разом з точкою на нескінченності. Отже кількість точок на кривій парна 1 точку дає по дві точки можуть давати інші елементи поля і треба не забути про точку на нескінченності. Додавання точок виконується наступним чином: 1 Нейтральний елемент групи: для будьякої точки . 3 Якщо то сумою точок та є 4 Якщо то 5 Якщо то .
20700. Генерування випадкових чисел 89.26 KB
  1КІ08 Морозов Артем Мета роботи: Усвідомити важливість проблеми генерування випадкових чисел під час вирішення задач захисту інформації ознайомитися з деякими способами генерування псевдовипадкових чисел усвідомити сильні і слабкі сторони алгоритмічних методів генерування випадкових чисел. Генератор випадкових чисел англ. Широко використовуються комп'ютерні системи для генерації випадкових чисел але часто вони малоефективні.
20701. Cтенографічний захист інформації 165.67 KB
  Для запуску програми необхідно задати: 1 звуковий файл формату МРЗ; 2 впроваджуваний файл будьякого формату; 3 пароль; 4 коефіцієнт стиснення; 5 рівень скритності. На першому етапі роботи програми впроваджуваний файл стискається з заданим користувачем коефіцієнтом стиснення. Блоксхема алгоритму роботи програми Puff представлена ​​на рисунку. Відповідно до класифікації методів впровадження інформації всі розглянуті в статті програми реалізують форматні методи.
20702. Гамування 75.04 KB
  Відкрите повідомлення MYNAMEІSARTEM Зашифруемо повідомлення Ключ k=i36mod 26 MYNAMEISARTEM 1 2 3 4 5 лат. Зашифроване повідомлення Шифрування Ci=tigimod N 16 8 4 2 1 k=i36 1 2 3 4 5 21 0 1 1 1 0 7 1 0 1 1 0 16 0 0 0 1 0 20 1 0 1 1 0 15 0 1 0 1 0 16 0 0 0 1 0 14 1 0 0 1 0 11 0 0 0 0 0 15 0 1 0 1 0 15 0 1 0 1 0 8 1 0 1 1 1 9 1 1 1 0 1 17 0 0 1 0 1 11 0 1 1 1 1 Висновки: В даній лабораторній роботі було розглянуто принципи гамування створено гаму і зашифровано за допомогою неї повідомлення.