来自 http://paulsolt.com/2010/09/ios-converting-uiimage-to-rgba8-bitmaps-and-back/
下载:https://github.com/PaulSolt/UIImage-Conversion
ImageHelper.h
/*
* The MIT License
*
* Copyright (c) 2011 Paul Solt, PaulSolt@gmail.com
*
* https://github.com/PaulSolt/UIImage-Conversion/blob/master/MITLicense.txt
*
*/
#import <Foundation/Foundation.h>
@interface
ImageHelper :
NSObject
{
}
/** Converts a UIImage to RGBA8 bitmap.
@param image - a UIImage to be converted
@return a RGBA8 bitmap, or NULL if any memory allocation issues. Cleanup memory with free() when done.
*/
+
(
unsigned
char
*
)
convertUIImageToBitmapRGBA8:
(
UIImage
*
)
image
;
/** A helper routine used to convert a RGBA8 to UIImage
@return a new context that is owned by the caller
*/
+
(
CGContextRef
)
newBitmapRGBA8ContextFromImage:
(
CGImageRef
)
image
;
/** Converts a RGBA8 bitmap to a UIImage.
@param buffer - the RGBA8 unsigned char * bitmap
@param width - the number of pixels wide
@param height - the number of pixels tall
@return a UIImage that is autoreleased or nil if memory allocation issues
*/
+
(
UIImage
*
)
convertBitmapRGBA8ToUIImage:
(
unsigned
char
*
)
buffer
withWidth:
(
int
)
width
withHeight:
(
int
)
height
;
@end
ImageHelper.m
/*
* The MIT License
*
* Copyright (c) 2011 Paul Solt, PaulSolt@gmail.com
*
* https://github.com/PaulSolt/UIImage-Conversion/blob/master/MITLicense.txt
*
*/
#import "ImageHelper.h"
@implementation
ImageHelper
+
(
unsigned
char
*
)
convertUIImageToBitmapRGBA8:
(
UIImage
*
)
image
{
CGImageRef
imageRef
=
image
.
CGImage
;
// Create a bitmap context to draw the uiimage into
CGContextRef
context
=
[
self
newBitmapRGBA8ContextFromImage:
imageRef
];
if
(
!
context
)
{
return
NULL
;
}