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:
parent
b4918747ef
commit
2a8db3cdda
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user