Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.02;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.024 c
2-1186654028
Балбес
2007-08-09 14:07
2007.09.02
Доступ к методам произвольных форм.


15-1186021112
Slider007
2007-08-02 06:18
2007.09.02
С днем рождения ! 2 августа 2007 четверг


8-1164005910
sawa
2006-11-20 09:58
2007.09.02
Преобразование mp3 в wma


9-1159030536
glscener
2006-09-23 20:55
2007.09.02
[GLScene] Нужна консультация


1-1182078980
zzz(KOT)zzz
2007-06-17 15:16
2007.09.02
Проблемы с графикой в Delphi, Индексирование цвета