Вывод Информации О Картинке Формата Tif

203

New member
21.02.2012
2
0
#1
Здравствуйте. Помогите пожалуйста разобраться как сделать программу которая будет выводить информацию о картинке формата tif (высота, ширина, разрешение, количество бит на пиксель и т.д) . Объясните пожалуйста каким образом это можно сделать. Заранее спасибо.
Есть пример на формат tga но не могу разобраться. Помогите пожалуйста.
C++:
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{  setlocale(LC_ALL,"russian");
int length,type_img,type_map;
int nep,kep,kolbit;
int x,y,shir,vis,deep,info;
int i=99;

fstream(f);
f.open("5.tga",ios::in | ios::binary);

f.read((char*)&i,1); length=i;
if(length==0)
cout<<"Файл не содержит поле идентификатор"<<endl;
else		
cout<<"Длина идентификатора="<<i<<endl;

f.read((char*)&i,1); type_map=i;

if(type_map==0)
cout<<"Файл не содержит карты цветов"<<endl;
else
cout<<"Файл содержит карту цветов";

f.read((char*)&i,1); type_img=i;
if(type_img==0)
cout<<"Нет Изображения"<<endl;
if(type_img==1)
cout<<"Изображение с палитрой"<<endl;
if(type_img==2)
cout<<"TrueColor изображение"<<endl;
if(type_img==3)
cout<<"Монохромное изображение"<<endl;
if(type_img==9)
cout<<"Изображение с палитрой"<<endl;
if(type_img==10)
cout<<"TrueColor изображение"<<endl;
if(type_img==11)
cout<<"Монохромное изображение"<<endl;



f.read((char*)&i,2); nep=i;
f.read((char*)&i,2); kep=i;
f.read((char*)&i,1); kolbit=i;
if(type_map!=0)
{
cout<<kep<<" Элементов палитры"<<endl;
cout<<"Начальный элемент палитры "<<nep<<endl; 
cout<<kolbit<<" Бит на один элемент палитры"<<endl;
}

f.read((char*)&i,2); x=i;
cout<<"Координата левого нижнего по горизонтали="<<x<<endl;
f.read((char*)&i,2); y=i;
cout<<"Координата левого нижнего угла по вертикали="<<y<<endl;
f.read((char*)&i,2); shir=i;
cout<<"Ширина изображения="<<shir<<" pixels"<<endl;
f.read((char*)&i,2); vis=i;
cout<<"Высота изображения="<<vis<<" pixels"<<endl;
f.read((char*)&i,1); deep=i;
cout<<"Количество бит на пиксель="<<deep<<endl;
f.read((char*)&i,1); info=i;
cout<<"info"<<info<<endl;
f.close();
system("pause");

}
 

203

New member
21.02.2012
2
0
#3
Спасибо за ссылку. Но я не могу разобраться что и как тут делать какие команды надо писать после того как я открыл картинку. (нельзя пользоваться посторонними библиотеками). Помогите пожалуйста.
C++:
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{  setlocale(LC_ALL,"russian");
int x;
fstream(f);
f.open("12.tif",ios::in | ios::binary);
Что писать дальше?
 
R

rrrFer

#4
за тебя никто писать не будет. на каждой странице этого раздела написано:
5. Ну а те, кто не хочет что-то делать самостоятельно, должны понимать, что работа людей стоит денег. Даже самая мелкая. А потому, если вы готовы платить за решение своей проблемы, то так же указывайте это в своей теме. Что-то в духе: Нужно решить такую-то задачу. Оплата.
Если нельзя пользоваться готовыми библиотеками - смотри описание формата. Ссылка на описание взята с вики: http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf
мог бы сам найти и не задавать уже глупых вопросов.
это работать не будет.
 

203

New member
21.02.2012
2
0
#5
Спасибо за ссылки.
Мне не надо чтобы вы за меня весь код писали, показали как вывести хотя бы одно (разрешение или пикселей сколько) а дальше уже сам по примеру и тд.