Class: ZIMG::JPEG::BitEnumerator
- Inherits:
-
Object
- Object
- ZIMG::JPEG::BitEnumerator
- Defined in:
- lib/zimg/jpeg/decoder.rb
Instance Method Summary collapse
- #bytes_left ⇒ Object
- #eof? ⇒ Boolean
-
#initialize(data, offset: 0) ⇒ BitEnumerator
constructor
A new instance of BitEnumerator.
- #next ⇒ Object
- #peek_byte(add = 0) ⇒ Object
- #peek_bytes(n) ⇒ Object
- #receive(length) ⇒ Object
- #receive_extend(length) ⇒ Object
- #reset! ⇒ Object
- #skip_bytes(n) ⇒ Object
Constructor Details
#initialize(data, offset: 0) ⇒ BitEnumerator
Returns a new instance of BitEnumerator.
136 137 138 139 140 |
# File 'lib/zimg/jpeg/decoder.rb', line 136 def initialize(data, offset: 0) @data = data @offset = offset @eof = false end |
Instance Method Details
#bytes_left ⇒ Object
164 165 166 |
# File 'lib/zimg/jpeg/decoder.rb', line 164 def bytes_left @data.size - @offset end |
#eof? ⇒ Boolean
147 148 149 |
# File 'lib/zimg/jpeg/decoder.rb', line 147 def eof? @eof end |
#next ⇒ Object
142 143 144 145 |
# File 'lib/zimg/jpeg/decoder.rb', line 142 def next @bio ||= _create_enumerator(@data, @offset) @bio.next end |
#peek_byte(add = 0) ⇒ Object
151 152 153 |
# File 'lib/zimg/jpeg/decoder.rb', line 151 def peek_byte(add = 0) @data[@offset + add] end |
#peek_bytes(n) ⇒ Object
155 156 157 |
# File 'lib/zimg/jpeg/decoder.rb', line 155 def peek_bytes(n) @data[@offset, n] end |
#receive(length) ⇒ Object
172 173 174 175 176 177 178 179 180 181 182 |
# File 'lib/zimg/jpeg/decoder.rb', line 172 def receive(length) @bio ||= _create_enumerator(@data, @offset) r = 0 length.times do bit = @bio.next # return unless bit r = (r << 1) | bit end r end |
#receive_extend(length) ⇒ Object
184 185 186 187 188 189 |
# File 'lib/zimg/jpeg/decoder.rb', line 184 def receive_extend(length) n = receive(length) return n if n >= (1 << (length - 1)) n + (-1 << length) + 1 end |
#reset! ⇒ Object
168 169 170 |
# File 'lib/zimg/jpeg/decoder.rb', line 168 def reset! @bio = nil end |
#skip_bytes(n) ⇒ Object
159 160 161 162 |
# File 'lib/zimg/jpeg/decoder.rb', line 159 def skip_bytes(n) @offset += n @bio = nil end |