handling 50% corrupt image

Hello,

Could someone please give me a hand?
I have image-processing problem which is described below.
I tried to load a PNG image from file, but I couldn’t.
The image seems to be corrupted … because when I try convert that PNG image using convert command(linux command),
then I got a following error.

convert: Corrupt image ‘sample.png’

( sample.png is PNG image I mention now. )

But if I watch that PNG image from windows explorer, I can see the image.
( The half bottom of image is black out, though. )
Also, I tried using GIMP on Redhat Linux4, I could see upper half of images(same as windows explorer case).
Then, I understood this image was not 100% corrupted. The upper half of image can be recovered.

In this situation, what I want to do is, to show the PNGimage on wxpython application.
The bottom half of image is black out, it is OK for me… there is no choice.
I think windows explorer and GIMP can show that PNG image, so we can do it.
But I dont know how ... Does anyone give me a hand how to do it?

I did 2 tries described below using python2.5, wxpython2.8.1-1, python image library(PIL-1.1.6.win32-py2.5.exe).

[1. WxPython try ]
Code : bmp = wx.Image( 'sample.png' ).ConvertToBitmap()
Error: fb_bmp = wx.Image( 'sample.png' ).ConvertToBitmap()
    File "C:\Python25\Lib\site-packages\wx-2.8-msw-unicode\wx\_core.py", line 3270, in ConvertToBitmap
        return _core_.Image_ConvertToBitmap(*args, **kwargs)
        wx._core.PyAssertionError: C++ assertion "image.Ok()" failed at ..\..\src\msw\bitmap.cpp(799) in
        wxBitmap::CreateFromImage(): invalid image

[ 2. Python Image Library try ]
Code : img = Image.open('sample.png')
        wximg = wx.EmptyImage(img.size[0], img.size[1])
        wximg.SetData(img.convert('RGB').tostring())
        self.bmp = wximage.ConvertToBitmap()

Error:
   wximg.SetData(img.convert('RGB').tostring())
   File "C:\Python25\Lib\site-packages\PIL\Image.py", line 653, in convert
        self.load()
   File "C:\Python25\Lib\site-packages\PIL\ImageFile.py", line 189, in load
        s = read(self.decodermaxblock)
   File "C:\Python25\Lib\site-packages\PIL\PngImagePlugin.py", line 349, in load_read
        cid, pos, len = self.png.read()
   File "C:\Python25\Lib\site-packages\PIL\PngImagePlugin.py", line 92, in read
        len = i32(s)
   File "C:\Python25\Lib\site-packages\PIL\PngImagePlugin.py", line 40, in i32
        return ord(c[3]) + (ord(c[2])<<8) + (ord(c[1])<<16) + (ord(c[0])<<24)
        IndexError: string index out of range

Kindly Regards,
mk