Добрый вечер форумчане! Возникла проблема, кто знает помогите. Как в билдере отобразить графический файл в двоичном виде. Я отрываю файл, отображаю картинку, а рядом надо чтоб отображалось содержимое файла только в двоичнов виде( ну к примеру так как в командере после нажатия клавиши F3->6). И как извлекать инфу из exif? (модель камеры, когда снято, и т.д) кто знает пожалуйста подскажите, какие функции использовать?
1) двоичное представление - тупо открой файл картинки на чтение, загрузи его весь в буфер какойнить и от туда считывай по байтно и отображай как угодно. 2) инфа exif ищу описание структуры jpeg файлов.
А как можно отобразить отбразить графический файл, так как если бы он выглядел только из младших битов, я имею ввиду картинку. Как вынуть младшие биты я знаю, а остальные что заменять нулями? Картинка может вообще отображаться если она состоит только из младших битов? Может кто-нибудь разяснить?
Для начала скажи какой тип картинки тебя интересует. В зависимости от того какой тип я смогу тебе подкинуть идейку а для tiff даже дам сорцы. А вообще по каждому формату нужно читать документацию. В некоторых типах в первых 8 байтах хранится различного рода инфа, как раз которая тебя интересует(версия, когда сделана и т.д.). Правда некоторые форматы закодированы и их с начало нужно разкодировать, а только потом читать по байтно.
FlyBird, по поводу tiff можно посмотреть, мне нужно bmp, как я и писал, отобразить так как если бы она состояла только из младших бит, так вот на заголовок там 54 байта, а вот чтоб так отобразить мне надо, игнорировать старшие биты из массива Colorarray, или так же менять биты в BitMaparray? Как это сделать?
Привет всем! Подскажите как ускорить процесс, работает очень долго(((, можно как то отобразить символ в битовом виде по другому? Code: 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