Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Федеральное агентство по образованию РФ
Санкт-Петербургский государственный электротехнический
университет "ЛЭТИ" им. В. И. Ульянова (Ленина)
Кафедра телевидения и видеотехники
Отчёт по лабораторной работе №4:
"Чтение заголовка TIFF - файла"
Выполнил: Евстигнеев Е.
Осадчук С.
Группа 0105
Преподаватель: Мончак А.М.
Санкт-Петербург
2011
1. Неформальная постановка задачи:
Создать программу отвечающую заданым учсловиям
2. Формальная постановка задачи:
Создать программу, читающую описательную часть TIFF-файла изображения
(из каталога O;/IMAGES), имя которого берется из командной строки запуска.
3. Текст программы :
program lab4; {программа читающая tag составляющую TIFF файла}
uses crt, GraphABC;
const zig : array [0..3] of byte=(73,73,42,20);
var
zag : array [0..3] of byte;
size : word;
f : file of real;
imagename1,ch : string;
i,namet : integer;
adr,kolvo,datat,adr2,d : longint;
begin
clrscr;
if paramcount <> 0 then imagename1:=paramstr(1) {Проверяем командную строку}
{на наличие записей}
else
begin
writeln('Vvedite imya TIFF faila: ');{Иначе вводим имя файла вручную}
readln(imagename1);
end;
if imagename1 = '' then
begin
writeln('Chto-to pohlo ne tak...'); {Если ниего не ввели}
ch:=readkey;
halt;
end
else
begin
assign (f,imagename1); {Открываем файл для чтения}
size:=1; {Размер записи 1байт}
reset(f,size);
blockread(f,zag,sizeof(zag)); {Тут долен быть заголовок}
end;
if (zig[0] <> zag[0]) and (zig[1] <> zag[1]) and (zig[2] <> zag[2]) and (zig[3] <> zag[3]) then
begin
writeln('Eto ne TIFF file'); {Если заголовок не ТИФовский}
ch:=readkey;
halt;
end;
seek(f,4); {К адресу области данных}
blockread(f,adr,4);
seek(f,adr);
blockread(f,kolvo,2);
adr:=adr+2;
ch:='Spisok vseh tag"ov: ';
for i:=1 to kolvo do
begin
seek(f,adr); {Переместить к началу следующего tag'a}
blockread(f,namet,2);
writeln('Tag № ',namet);{Вывод имени(номера) Tag'a}
adr:=adr+8; {Переместить к области данных}
case namet of
256: {Содержит число точек в строке изображения}
begin
seek(f,adr);
blockread(f,datat,4);
writeln('(256)Chislo tochek po gorizontali ',datat);
end;
257: {Содержит количество строк в изображении}
begin
seek(f,adr);
blockread(f,datat,4);
writeln('(257)Chislo tochek po vertikali ',datat);
end;
258:
begin
seek(f,adr);
blockread(f,datat,4);
writeln('(258)Glubina cveta ',datat); {Число битов на пиксел(глубина цвета)}
end;
273:
begin
seek(f,adr-4);
blockread(f,datat,4);
seek(f,adr);
if datat = 1 then
begin
blockread(f,adr2,4);
writeln('Polosa odna po adresu #',datat);{Количество информации этого тага}
end { дальше адрес таблицы строк или самого изображения}
else
begin
blockread(f,adr2,4);
writeln('Polos ',datat,' s adresami #');
for i:=1 to datat do
begin
seek(f,adr2);
blockread(f,d,4);
writeln('adres #',i, '----',d);
end;
end;
end;
278:
begin
seek(f,adr);
blockread(f,datat,4);
writeln('(278)Strok v polose ',datat); {Количество строк в одной полосе}
end;
end;
adr:=adr+4;
{ch:=ch+'tag # '+namet+' '}
end;
seek(f,adr);
blockread(f,adr,4);
writeln('Vsego ',kolvo,' Tag"ov');
if adr <> 0 then writeln('Est escho oblast dannih');
ch:=readkey;
end.
4. Инструкция пользователя. Запустить файл (*.exe), первого файла, следуйте инструкциям на экране, затем повторите действия со вторым.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.