Home     |     .Net Programming    |     cSharp Home    |     Sql Server Home    |     Javascript / Client Side Development     |     Ajax Programming

Ruby on Rails Development     |     Perl Programming     |     C Programming Language     |     C++ Programming     |     IT Jobs

Python Programming Language     |     Laptop Suggestions?    |     TCL Scripting     |     Fortran Programming     |     Scheme Programming Language


 
 
Cervo Technologies
The Right Source to Outsource

MS Dynamics CRM 3.0

Python Programming Language

how to convert a bitmap file to an array ?


hello

I can find all kind of procedures to convert an array to a bitmap
(wxPython, PIL),
but I can't find the reverse,
either
   - convert a bitmap to an array
or
  - read a bitmap file to an array

thanks,
Stef Mientki

stef schrieb:
> hello

> I can find all kind of procedures to convert an array to a bitmap
> (wxPython, PIL),
> but I can't find the reverse,
> either
>    - convert a bitmap to an array
> or
>   - read a bitmap file to an array

> thanks,
> Stef Mientki

Take a look at the "struct" module.
There you fill find pack/unpack, which can do what you need.

stef wrote:
> hello

> I can find all kind of procedures to convert an array to a bitmap
> (wxPython, PIL),
> but I can't find the reverse,
> either
>    - convert a bitmap to an array
> or
>   - read a bitmap file to an array

Not true for PIL, Image.getdata and Image.putdata are your friends.

Diez

thanks Stefan,

but using struct, I need to know how a bitmap file is build,
I don't know that (and I rather don't want to know that ;-)

Any better solutions (I'm a spoiled Delphi user ;-)

cheers,
Stef Mientki

thanks Diez,
I really overlooked that.

cheers,
Stef Mientki

I can offer the code below, but I can't guarantee you won't need to play
with it. You can almost certainly ignire the fonty bits!

def _setupContext(memory, font=None, color=None):
         if font:
                 memory.SetFont(font)
         else:
                 memory.SetFont(wx.NullFont)
         if color:
                 memory.SetTextForeground(wx.Colour(*color))

def write( text, bitmap, pos=(0,0), font=None, color=None):
         """Simple write into a bitmap doesn't do any checking."""
         memory = wx.MemoryDC()
         _setupContext(memory, font, color)
         memory.SelectObject(bitmap)
         width, height = memory.GetTextExtent(text)
         try:
                 memory.DrawText(text, pos[0],pos[1],)
         finally:
                 memory.SelectObject(wx.NullBitmap)
         return width

def bitmapToPil(bitmap):
     return imageToPil(bitmapToImage(bitmap))

def bitmapToImage(bitmap):
     return wx.ImageFromBitmap(bitmap)

def pilToBitmap(pil):
     return imageToBitmap(pilToImage(pil))

def pilToImage(pil):
     image = wx.EmptyImage(pil.size[0], pil.size[1])
     image.SetData(pil.convert('RGB').tostring())
     return image

def imageToPil(image):
     pil = Image.new('RGB', (image.GetWidth(), image.GetHeight()))
     pil.fromstring(image.GetData())
     return pil

def imageToBitmap(image):
     return image.ConvertToBitmap()

regards
  Steve
--
Steve Holden        +1 571 484 6266   +1 800 494 3119
Holden Web LLC/Ltd           http://www.holdenweb.com
Skype: holdenweb      http://del.icio.us/steve.holden
--------------- Asciimercial ------------------
Get on the web: Blog, lens and tag the Internet
Many services currently offer free registration
----------- Thank You for Reading -------------

Add to del.icio.us | Digg this | Stumble it | Powered by Megasolutions Inc