Просмотр полной версии : Графические файлы
ii55vvw22
18.11.2008, 18:15
Добрый вечер форумчане!
Возникла проблема, кто знает помогите. Как в билдере отобразить графический файл в двоичном виде. Я отрываю файл, отображаю картинку, а рядом надо чтоб отображалось содержимое файла только в двоичнов виде( ну к примеру так как в командере после нажатия клавиши F3->6).
И как извлекать инфу из exif? (модель камеры, когда снято, и т.д) кто знает пожалуйста подскажите, какие функции использовать?
1) двоичное представление - тупо открой файл картинки на чтение, загрузи его весь в буфер какойнить и от туда считывай по байтно и отображай как угодно.
2) инфа exif ищу описание структуры jpeg файлов.
ii55vvw22
20.11.2008, 00:52
А как можно отобразить отбразить графический файл, так как если бы он выглядел только из младших битов, я имею ввиду картинку.
Как вынуть младшие биты я знаю, а остальные что заменять нулями? Картинка может вообще отображаться если она состоит только из младших битов?
Может кто-нибудь разяснить?
Для начала скажи какой тип картинки тебя интересует.
В зависимости от того какой тип я смогу тебе подкинуть идейку а для tiff даже дам сорцы.
А вообще по каждому формату нужно читать документацию.
В некоторых типах в первых 8 байтах хранится различного рода инфа, как раз которая тебя интересует(версия, когда сделана и т.д.).
Правда некоторые форматы закодированы и их с начало нужно разкодировать, а только потом читать по байтно.
ii55vvw22
21.11.2008, 09:19
FlyBird, по поводу tiff можно посмотреть, мне нужно bmp, как я и писал, отобразить так как если бы она состояла только из младших бит, так вот на заголовок там 54 байта, а вот чтоб так отобразить мне надо, игнорировать старшие биты из массива Colorarray, или так же менять биты в BitMaparray? Как это сделать?
ii55vvw22
25.11.2008, 10:40
Привет всем!
Подскажите как ускорить процесс, работает очень долго(((, можно как то отобразить символ в битовом виде по другому?
f=fopen(OpenDialog1->FileName.c_str(),"rb");
fseek(f,0L,SEEK_END);
f_len=ftell(f);
fseek(f,0L,SEEK_SET);
f_pos=ftell(f);
i=0;
while(!feof(f))
{s=fgetc(f);
StringGrid1->RowCount += 1;
massiv_bits(massivA,s); //доп.функция переводит символ в биты
for(j=7;j>=0;j--)
{pszBufferBitsView = pszBufferBitsView + IntToStr(massivA[j]);
}
StringGrid1->Cells[1][i+1] = pszBufferBitsView;
pszBufferBitsView = "";
i++;
}
Прости что не отвечала.
Уезжала в горы вот только вернулась.
Если тема еще актуальна, могу выложить сорцы проги для tiff
ii55vvw22
16.01.2009, 14:32
FlyBird спасибо канечно...но уже не актуально
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot