Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Вниз

Непонятная строчка кода   Найти похожие ветки 

 
ProgRAMmer Dimonych ©   (2007-08-03 13:32) [40]

> исследователь ©   (03.08.07 13:28) [37]
> это тоже я понял, вопрос в том - нафига? (с)

Видимо, эта операция позволяет восстановить исходную последовательность байтов, описывающих изображение, из сжатой. Т.е. где-то рядом в статье должно быть объяснение - зачем. Если нет - можно поверить, можно - найти описание формата. Там что-нибудь обязательно будет.


 
исследователь ©   (2007-08-03 13:33) [41]


> Вот если б я знал, откуда ты этот код сковырнул

я вроде написал:

http://www.forums.avtograd.ru/viewtopic.php?t=6516696&sid=1d9cc31b74df5372c22c9284f60f4839


 
@!!ex ©   (2007-08-03 13:34) [42]

> [37] исследователь ©   (03.08.07 13:28)

Для того, чтобы сказать нафига, нужно сомтреть весь код, нужно помнить как гиф хранится или лезть смотреть, а если это тебе лом, то почему остальным должно быть не влом?


 
Dib@zol ©   (2007-08-03 13:34) [43]

Чур меня!!! Нечисть... Мне с такой бандуриной неделю разбираться! Нет уж нафик...


 
Плохиш ©   (2007-08-03 13:35) [44]


> исследователь ©   (03.08.07 13:33) [41]

Первое с чего надо было бы начинать, описано в вразе из [40] "найти описание формата".


 
Плохиш ©   (2007-08-03 13:36) [45]


> вразе

"фразе", вот ведь снова промахнулся...


 
исследователь ©   (2007-08-03 13:37) [46]


> гиф хранится или лезть смотреть

описание формата я читал, было мне НЕ в лом, но вот про эту маску там не слова нет :) - это издержки программирования, так что не надо


> Плохиш ©   (03.08.07 13:35) [44]

то же самое


> бандуриной

бандурина - это что конкретно? там код только посредине этот, там и другие исходники есть.


 
ProgRAMmer Dimonych ©   (2007-08-03 13:41) [47]

> Плохиш ©   (03.08.07 13:36) [45]
> > вразе
> "фразе", вот ведь снова промахнулся...

Сегодня явно не Ваш день: Клава не в духе :):):)

> исследователь ©   (03.08.07 13:37) [46]
> > гиф хранится или лезть смотреть
> описание формата я читал, было мне НЕ в лом, но вот про
> эту маску там не слова нет :) - это издержки программирования,
>  так что не надо

Верно. Если Вы приведёте здесь фрагмент описания формата GIF, который касается этого места в коде, любой из здесь присутствующих с радостью объяснит. Хотя бы в общих чертах: для чего используется эта часть кода - расшифровки-распаковки изображения или чтения информации о нём - и что по этому поводу в описании формата.


 
Плохиш ©   (2007-08-03 13:44) [48]


> Сегодня явно не Ваш день

Фии...


 
исследователь ©   (2007-08-03 13:44) [49]


> фрагмент описания формата GIF

для того, чтобы привести этот фрагмент, мне нужно его НАЙТИ, а если я его НАЙДУ,  то значит и РАЗБЕРУСЬ, что чему соотвествует, тогда зачем мне помощь? Замкнутый круг, я не могу разобраться и в тупике! Помогите, кто может уделить хоть немного времени!


 
исследователь ©   (2007-08-03 13:45) [50]


>  соотвествует

извините, соответствует


 
Dib@zol ©   (2007-08-03 13:46) [51]

{ Делает поpцию из 24-бит}
U.b1:=Raster^[Byteoffset];
U.B2:=Raster^[Byteoffset+1];
U.W1:=0;
If CodeSize>=8 then
U.W1:=Raster^[Byteoffset+2];
RawCode:=U.Wo;
{ вычисляем пеpвое значение по фоpмуле
Rawcode:=Raster^[Byteoffset]+(256*Raster^[Byteoffset+1])+
(65536*Raster[Byteoffset+2])
пpовеpить на ошибку !}

Code:=(RawCode shr (BitOffset mod 8)) and ReadMask;

Урряя! Code - это код ошибки!!!


 
Плохиш ©   (2007-08-03 13:48) [52]

Хм,

{ Выбиpает следующий код из pастpового потока. Код может содеpжать
от 3 до 12 бит, упакованные в 8-ми битные байты. Используется
значение смещения BIT. Мы подсчитываем смещение делением на 8 }

Procedure ReadCode;
type Univ=record
case integer of
1:(b1,b2:byte;w1:word);
2:(Wo:longint);
end;

Var RawCode:LongInt;
U:Univ;
Begin
ByteOffset:=BitOffset shr 3;

{ Делает поpцию из 24-бит}
U.b1:=Raster^[Byteoffset];
U.B2:=Raster^[Byteoffset+1];
U.W1:=0;
If CodeSize>=8 then
U.W1:=Raster^[Byteoffset+2];
RawCode:=U.Wo;
{ вычисляем пеpвое значение по фоpмуле
Rawcode:=Raster^[Byteoffset]+(256*Raster^[Byteoffset+1])+
(65536*Raster[Byteoffset+2])
пpовеpить на ошибку !}

Code:=(RawCode shr (BitOffset mod 8) and ReadMask;

Афигеть, долго и неудержно рыдал...


 
исследователь ©   (2007-08-03 13:49) [53]

Неправда.

Используется для определения, не конец ли файла и не некий ли "код сброса"


 
Dib@zol ©   (2007-08-03 13:49) [54]

Тфу...


 
исследователь ©   (2007-08-03 13:50) [55]


> исследователь ©   (03.08.07 13:49) [53]

это я по поводу 51


> Афигеть, долго и неудержно рыдал..

над чем ржал? эта строка и выполняет то, что написано у вас жирным?


 
исследователь ©   (2007-08-03 13:51) [56]

тогда какую все-такие роль играет маска?


 
ProgRAMmer Dimonych ©   (2007-08-03 13:55) [57]

> исследователь ©   (03.08.07 13:37) [46]
> описание формата я читал, было мне НЕ в лом, но вот про
> эту маску там не слова нет :) - это издержки программирования,
>  так что не надо

> исследователь ©   (03.08.07 13:44) [49]
> для того, чтобы привести этот фрагмент, мне нужно его НАЙТИ,
>  а если я его НАЙДУ,  то значит и РАЗБЕРУСЬ, что чему соотвествует,
>  тогда зачем мне помощь? Замкнутый круг, я не могу разобраться
> и в тупике! Помогите, кто может уделить хоть немного времени!

А зачем ещё нужно описание формата, кроме как чтобы разобраться?


 
исследователь ©   (2007-08-03 13:56) [58]


> А зачем ещё нужно описание формата, кроме как чтобы разобраться?

многие сорцы чтения GIF предлагают читать BlockRead-ом через структуры, которые и описаны в формате.


 
wp2 ©   (2007-08-03 13:57) [59]

>Помогите, кто может уделить хоть немного времени!

Да я и так целый час уделил тебе.


 
исследователь ©   (2007-08-03 13:59) [60]


> Да я и так целый час уделил тебе.

мне поклониться?

по делу - ничего.


 
AZIZE ©   (2007-08-03 14:04) [61]


> по делу - ничего.
>

не перебирай харчами


 
исследователь ©   (2007-08-03 14:07) [62]

не болтайте ерундой, лучше по сути на 56 ответьте


 
исследователь ©   (2007-08-03 14:46) [63]

Видимо, никто не знает


 
@!!ex ©   (2007-08-03 15:01) [64]

Та уже 10 раз ответили.
А гвооришь что знаешь как работает and....
ReadMask это как раз маска с которой соответствует значение.
Если полученное значение соответствует маске, то что мы получим на выходе???


 
wp2 ©   (2007-08-03 15:06) [65]

Исследователь слушай, оно тебе надо? Скажи. Работает, пускай себе работает!


 
исследователь ©   (2007-08-03 15:18) [66]


> @!!ex ©   (03.08.07 15:01) [64]

вроде такое же значение? если 1 and 1=1, 0 and 0 = 0


> wp2 ©   (03.08.07 15:06) [65]

типа "не трожь г, вонять не будет?"


 
@!!ex ©   (2007-08-03 15:45) [67]

> [66] исследователь ©   (03.08.07 15:18)

Правильно.
Маска служит для выдирания из большого числа частей.
Например нам нужно знать, какое число лежит в трех битах справа:
01010101
and
00000111
=
00000101=5

Ок? Тоесть маска позволяет вырезать из числа часть данных.


 
исследователь ©   (2007-08-03 16:14) [68]

Понял. Большое вам спасибо. Научили :)


 
Anatoly Podgoretsky ©   (2007-08-03 16:29) [69]

> исследователь  (03.08.2007 13:04:24)  [24]

Эта строчка не откомпилируется


 
wp2 ©   (2007-08-03 16:30) [70]

How Old are you?



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2007.09.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.034 c
15-1186512073
Loginov Dmitry
2007-08-07 22:41
2007.09.02
Баг в Delphi (от 7 до 2007) с условной компиляцией


10-1136807222
yanker
2006-01-09 14:47
2007.09.02
управление через OLE


11-1168543456
Psychedelic
2007-01-11 22:24
2007.09.02
Компонент ComboBoxEx (ComboBox с ImageList om) может кому надо...


2-1186671094
Я, снова я
2007-08-09 18:51
2007.09.02
Можно ли запустить процедуру зная ее название?


2-1186484647
kotbazilio
2007-08-07 15:04
2007.09.02
StringToWideChar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский