1. Tommy Carlier's win32dib library problem

Hi,

I have been experimenting with the key function in this library: newDib() and
am having no luck.  According to the documentation the handle to the new
bitmap file is the first item in a returned sequence.

[Begin docs quote]
Creating and deleting a bitmap

A Win32Dib-bitmap is a sequence of length 7:

* dib[DibHandle] is the bitmap handle (integer) you can use in
    Win32Lib-routines.
    * dib[DibMemory] is the address (atom) of the memory block of the bitmap.
    * dib[DibWidth] is the width of the bitmap in pixels.
    * dib[DibHeight] is the height of the bitmap in pixels.
    * dib[DibBytesPerLine] is the amount of bytes per line of the bitmap.
    * dib[DibBytesTotal] is the total amount of bytes of the bitmap.
    * dib[DibPadding] is the amount of bytes of padding after each scanline. 
[End docs quote]

However, the first item is actually a huge number -- an atom.  It causes
a type-check failure.  As far as I know, I have the latest version of the
library.

Tommy..?  Or anyone get this to work?  

--Quark

new topic     » topic index » view message » categorize

2. Re: Tommy Carlier's win32dib library problem

DB James wrote:
> 
> Hi,
> 
> I have been experimenting with the key function in this library: newDib() and
> am having no luck.  According to the documentation the handle to the new
> bitmap file is the first item in a returned sequence.
> 
> [Begin docs quote]
> Creating and deleting a bitmap
> 
> A Win32Dib-bitmap is a sequence of length 7:
> 
>     * dib[DibHandle] is the bitmap handle (integer) you can use in
>     Win32Lib-routines.
>     * dib[DibMemory] is the address (atom) of the memory block of the bitmap.
>     * dib[DibWidth] is the width of the bitmap in pixels.
>     * dib[DibHeight] is the height of the bitmap in pixels.
>     * dib[DibBytesPerLine] is the amount of bytes per line of the bitmap.
>     * dib[DibBytesTotal] is the total amount of bytes of the bitmap.
>     * dib[DibPadding] is the amount of bytes of padding after each scanline.
> 
> [End docs quote]
> 
> However, the first item is actually a huge number -- an atom.  It causes
> a type-check failure.  As far as I know, I have the latest version of the
> library.
> 
> Tommy..?  Or anyone get this to work?  
> 
> --Quark

You are confusing the terms "handle" and "id". A "handle" is a memory address; a
pointer to  the object in memory. A Win32Lib "id" is a sequential identification
number starting from 1. You can use this large-atom "handle" with Win32Lib bitmap
routines like bitBlt().

~Greg

new topic     » goto parent     » topic index » view message » categorize

3. Re: Tommy Carlier's win32dib library problem

Greg Haberek wrote:
> 
> DB James wrote:
> > 
> > Hi,
> > 
> > I have been experimenting with the key function in this library: newDib()
> > and
> > am having no luck.  According to the documentation the handle to the new
> > bitmap file is the first item in a returned sequence.
> > 
> > [Begin docs quote]
> > Creating and deleting a bitmap
> > 
> > A Win32Dib-bitmap is a sequence of length 7:
> > 
> >     * dib[DibHandle] is the bitmap handle (integer) you can use in
> >     Win32Lib-routines.
> >     * dib[DibMemory] is the address (atom) of the memory block of the
> >     bitmap.
> >     * dib[DibWidth] is the width of the bitmap in pixels.
> >     * dib[DibHeight] is the height of the bitmap in pixels.
> >     * dib[DibBytesPerLine] is the amount of bytes per line of the bitmap.
> >     * dib[DibBytesTotal] is the total amount of bytes of the bitmap.
> >     * dib[DibPadding] is the amount of bytes of padding after each scanline.
> > 
> > [End docs quote]
> > 
> > However, the first item is actually a huge number -- an atom.  It causes
> > a type-check failure.  As far as I know, I have the latest version of the
> > library.
> > 
> > Tommy..?  Or anyone get this to work?  
> > 
> > --Quark
> 
> You are confusing the terms "handle" and "id". A "handle" is a memory address;
> a pointer to  the object in memory. A Win32Lib "id" is a sequential
> identification
> number starting from 1. You can use this large-atom "handle" with Win32Lib
> bitmap
> routines like bitBlt().
> 
> ~Greg

Hi Greg,

Yes, I get it now, and am using the library, even writing a couple of drawing
routines for it.  I was led astray by the docs quote "dib[DibHandle] is the
bitmap handle (integer) you can use in Win32Lib-routines."  

It's not a Eu integer in fact, and alas, I've seen a number of ambiguous uses
of such terms as handle, not to mention pixmap, bitmap, DIB, etc.

The main goal here is to be able to create a bitmap in memory, be able to
draw to it easily, and save it to a file (can't read to a bitmap from screen
because the program may be minimized at the time of save).  No doubt it will
be easy in some future incarnation of win32lib.

Thanks for the reply,

--Quark

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu