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;


 

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

43916. Изучение технологического процесса ремонта электродвигателя-преобразователя НБ – 436 в объёме ТР-3 1.04 MB
  Расчет эксплуатируемого парка локомотивов. Расчет программы технических обслуживаний и ремонтов поездных локомотивов Расчет фронта ремонта локомотивов Определение процента неисправных локомотивов.
43917. Гидравлика. Жидкие среды 1.71 MB
  Гидравлическая классификация основана на разности в скоростях падения частиц (зерен) материала неодинаковой величины и плотности, находящихся во взвешенном состоянии в водной среде. Частицы классифицируются в основном в условиях их стесненного падения, при этом одновременно
43918. Методика організації самостійної роботи майбутніх інженерів-педагогів при викладанні дисципліни «Деталі машин» (на прикладі Української інженерно-педагогічної академії) 1.9 MB
  Вища освіта України завжди була дуже високої якості. Такою вона залишається і сьогодні. Випускники ВНЗ України, особливо фізико-математичного, медичного, авіаційного, морського, інженерно-технічного і хіміко-технологічного профілів, працюють і мають авторитет практично у всіх країнах світу.
43919. Модернизация учебной лабораторной установки для лаборатории гидравлики и теплотехники кафедры 34, МГИУ 3.17 MB
  По мере прикрытия дросселя общий уровень давления в вихревой трубе повышается, и расход холодного потока через отверстие диафрагмы увеличивается при соответствующем уменьшении расхода горячего потока. При этом температуры холодного и горячего потоков также изменяются.
43920. Проект разработки средств мокрой очистки технологических газов и мероприятий по охране труда в условиях мартеновского цеха ОАО «Запорожсталь» 927.5 KB
  В разделе КИП и А разработаны системы автоматического контроля и регулирования газоочистной установки мартеновской печи №7 ОАО Запорожсталь. Технология выплавки стали в мартеновских печах Устройство мартеновской печи Современная мартеновская печь представляет собой сложное техническое сооружение и состоит из двух основных частей: верхнего строения включающего рабочее пространство и головки печи и нижнего строения состоящего из шлаковиков боровов регулирующих устройств регенераторов и газопроводов.1...
43921. Использование сети Интернет в системе маркетинговых коммуникаций: состояние и перспективы развития на примере ОАО «Брестский райагросервис» 12.07 MB
  Как совокупность средств это комплекс содержания, носителей и способов передачи маркетинговой информации, позволяющий осуществлять информационные связи, контакты в виде рекламы, отношений с общественностью, прямого маркетинга (включая личные контакты) и смешанных видов (включая выставки, ярмарки и другие формы содействия продажам, сбыту).
43922. Использование ресурсов сети Интернет при изучении тем раздела «Социальная информатика» на базовом уровне 25.76 MB
  Под телематикой ученым понимается обработка информации на расстоянии. За этим стоит простая и глубокая мысль: развитие каналов связи отражает и уровень компьютеризации и объем накопленной информации и объективную потребность общества во всех видах информационного обмена и другие проявления информатизации. В последние полвека в развитых странах мира пропускная способность коммуникационных сетей передачи информации возрастала в среднем примерно в 10 раз за десятилетие. Развитие средств хранения передачи и обработки информации в...
43923. Разработка рекомендаций, направленных на совершенствование организации бухгалтерского учета и повышение эффективности использования денежных средств в ОАО «РЖД» 762.5 KB
  Денежные средства характеризуют начальную и конечную стадии кругооборота хозяйственных средств скорость движения которых во многом определяет эффективность всей деятельности организации. В условиях рыночной экономики следует исходить из принципа что умелое использование денежных средств может приносить организации дополнительный доход так как временно...
43924. Театралізовані ігри як засіб розвитку творчих здібностей першокласників на уроках музики 353.5 KB
  Театралізована гра як засіб розвитку творчих здібностей першокласників Загальна характеристика театралізованих ігор як методу розвитку творчих здібностей молодших школярів Методика розвитку творчих здібностей учнів 6річного віку в процесі використання театралізованих ігор на уроках музики Мистецтво з його унікальними можливостями цілісного впливу на особистість виступає не тільки джерелом естетичного виховання а й універсальним засобом творчого розвитку дитини.