• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 203
  • Дата начала
2

203

Здравствуйте. Помогите пожалуйста разобраться как сделать программу которая будет выводить информацию о картинке формата 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");

}
 
R

rrrFer


например.
гугл поможет найти больше вариантов
 
2

203

Спасибо за ссылку. Но я не могу разобраться что и как тут делать какие команды надо писать после того как я открыл картинку. (нельзя пользоваться посторонними библиотеками). Помогите пожалуйста.
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

за тебя никто писать не будет. на каждой странице этого раздела написано:
5. Ну а те, кто не хочет что-то делать самостоятельно, должны понимать, что работа людей стоит денег. Даже самая мелкая. А потому, если вы готовы платить за решение своей проблемы, то так же указывайте это в своей теме. Что-то в духе: Нужно решить такую-то задачу. Оплата.
Если нельзя пользоваться готовыми библиотеками - смотри описание формата. Ссылка на описание взята с вики:
мог бы сам найти и не задавать уже глупых вопросов.
это работать не будет.
 
2

203

Спасибо за ссылки.
Мне не надо чтобы вы за меня весь код писали, показали как вывести хотя бы одно (разрешение или пикселей сколько) а дальше уже сам по примеру и тд.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!