Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Графические файлы (https://forum.antichat.xyz/showthread.php?t=92393)

ii55vvw22 18.11.2008 18:15

Графические файлы
 
Добрый вечер форумчане!

Возникла проблема, кто знает помогите. Как в билдере отобразить графический файл в двоичном виде. Я отрываю файл, отображаю картинку, а рядом надо чтоб отображалось содержимое файла только в двоичнов виде( ну к примеру так как в командере после нажатия клавиши F3->6).

И как извлекать инфу из exif? (модель камеры, когда снято, и т.д) кто знает пожалуйста подскажите, какие функции использовать?

slesh 19.11.2008 10:14

1) двоичное представление - тупо открой файл картинки на чтение, загрузи его весь в буфер какойнить и от туда считывай по байтно и отображай как угодно.
2) инфа exif ищу описание структуры jpeg файлов.

ii55vvw22 20.11.2008 00:52

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

Как вынуть младшие биты я знаю, а остальные что заменять нулями? Картинка может вообще отображаться если она состоит только из младших битов?

Может кто-нибудь разяснить?

FlyBird 20.11.2008 18:00

Для начала скажи какой тип картинки тебя интересует.
В зависимости от того какой тип я смогу тебе подкинуть идейку а для 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++;
                }


FlyBird 15.01.2009 16:46

Прости что не отвечала.
Уезжала в горы вот только вернулась.
Если тема еще актуальна, могу выложить сорцы проги для tiff

ii55vvw22 16.01.2009 14:32

FlyBird спасибо канечно...но уже не актуально


Время: 00:27