LZW compression and binaryEncode
Frank D. Engel, Jr.
fde101 at fjrhome.net
Mon Apr 18 08:51:52 EDT 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
A character cannot store values outside the range of 0-255. if you
wish to store longer values, you need to use multiple characters. For
example, you can use two characters to store values in the range of
0-65535:
function encode2 x
return numToChar(x div 256) & numToChar(x bitAnd 255)
end encode2
function decode2 x
return (charToNum(char 1 of x) * 256) + charToNum(char 2 of x)
end decode2
On Apr 17, 2005, at 5:07 PM, jbv wrote:
>
>
> Dar,
>
> Thanks again for the reply, but actually I know most of
> what you explained, as I've already fiddled with the
> binaryEncode function (for sound files & other data
> manipulations)...
> Although, several issues still remain unclear : my serie
> of output indexes resulting from the LZW compression
> feature more than 256 entries. Therefore I'm wondering
> how this could be represented in binary, in order to be
> decoded by the LZW filter in pdf...
>
> Best,
> JB
>
>> On Apr 17, 2005, at 2:38 PM, jbv wrote:
>>> But now I need to convert the output serie of index into binary
>>> data... Anyone familiar with this ?
>>> I guess I need to use binaryEncode, but how to set up parameters ?
>>
>> Normally, we think of a value in Transcript as a sequence of
>> characters. When we work with binary we can view each character as
>> that for an 8-bit encoding, that is, a byte. Thus, a value can be
>> viewed as a sequence of bytes. Just as we can concatenate characters
>> with &, we an concatenate what we consider to be bytes sequences the
>> same way.
>>
>> To get at the numerical value of the byte, you can use charToNum().
>> You can also use numToChar() as the inverse.
>>
>> You can also use binaryEncode() and binaryDecode(). Most formats are
>> in host order and so are of limited utility. However, some formats,
>> such as "N", are big endian. If you need small endian formatting,
>> just
>> reverse. There are some formats missing, so you would want to build
>> up
>> a few simple functions to help.
>>
>> For example,
>>
>> put binaryEncode("N",566) into aLen
>>
>> would put 4 bytes (chars) into aLen.
>>
>> Dar
>>
>> --
>> **************************************************
>> DSC (Dar Scott Consulting & Dar's Lab)
>> http://www.swcp.com/dsc/
>> Custom libraries (with externals, if needed)
>> **************************************************
>>
>> _______________________________________________
>> use-revolution mailing list
>> use-revolution at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/use-revolution
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution
>
>
- -----------------------------------------------------------
Frank D. Engel, Jr. <fde101 at fjrhome.net>
$ ln -s /usr/share/kjvbible /usr/manual
$ true | cat /usr/manual | grep "John 3:16"
John 3:16 For God so loved the world, that he gave his only begotten
Son, that whosoever believeth in him should not perish, but have
everlasting life.
$
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
iD8DBQFCY61p7aqtWrR9cZoRAmGjAKCDS+BAise+oKyQDPN+fbgwD/ACygCfb8wt
qUfEbH995cVGfdm2rLI24fA=
=AbNP
-----END PGP SIGNATURE-----
___________________________________________________________
$0 Web Hosting with up to 200MB web space, 1000 MB Transfer
10 Personalized POP and Web E-mail Accounts, and much more.
Signup at www.doteasy.com
More information about the use-livecode
mailing list