Implemented simplistic ConvertToImage()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott 2005-01-11 15:27:38 +00:00
parent b4918747ef
commit 2a8db3cdda

View File

@ -28,6 +28,7 @@
#import <AppKit/NSBitmapImageRep.h>
#import <AppKit/NSGraphics.h>
#import <AppKit/NSImage.h>
#import <AppKit/NSColor.h>
// ========================================================================
// wxBitmapRefData
@ -386,9 +387,26 @@ wxBitmap wxBitmap::GetSubBitmap(wxRect const&) const
wxImage wxBitmap::ConvertToImage() const
{
wxAutoNSAutoreleasePool pool;
if(!Ok())
return /*wxImage(5,5)*/wxNullImage;
return wxImage(M_BITMAPDATA->m_width,M_BITMAPDATA->m_height);
NSImage *nsimage = GetNSImage(false /* don't use mask */);
wxImage newImage(M_BITMAPDATA->m_width,M_BITMAPDATA->m_height);
[nsimage lockFocus];
for(int i=0; i < M_BITMAPDATA->m_width; i++)
{
// Don't let the pool get too big as you'll notice we're creating
// two autoreleased NSColor objects with every iteration.
wxAutoNSAutoreleasePool loopPool;
for(int j=0; j < M_BITMAPDATA->m_height; j++)
{
NSColor *pixelColor = NSReadPixel(NSMakePoint(i,M_BITMAPDATA->m_height - j - 1));
NSColor *color = [pixelColor colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
newImage.SetRGB(i,j,int([color redComponent]*255.0), int([color greenComponent]*255.0), int([color blueComponent]*255.0));
}
}
[nsimage unlockFocus];
return newImage;
}
bool wxBitmap::CreateFromXpm(const char **xpm)