Converting from UIImage/CGImage to Leptonica Pix structure
UIImage *image = [UIImage imageNamed:@"test.png"];...CFDataRef imageData = CGDataProviderCopyData(CGImageGetDataProvider([image CGImage]));const UInt8 *rasterData = CFDataGetBytePtr(data);/*-------------------------------------------------------------------------* * Basic Pix * *-------------------------------------------------------------------------*/struct Pix{ l_uint32 w; /* width in pixels */ l_uint32 h; /* height in pixels */ l_uint32 d; /* depth in bits */ l_uint32 wpl; /* 32-bit words/line */ l_uint32 refcount; /* reference count (1 if no clones) */ l_int32 xres; /* image res (ppi) in x direction */ /* (use 0 if unknown) */ l_int32 yres; /* image res (ppi) in y direction */ /* (use 0 if unknown) */ l_int32 informat; /* input file format, IFF_* */ char *text; /* text string associated with pix */ struct PixColormap *colormap; /* colormap (may be null) */ l_uint32 *data; /* the image data */};UIImage *image = [UIImage imageNamed:@"test.png"];CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider([image CGImage]));
const UInt8 *imageData = CFDataGetBytePtr(data);Pix *myPix = (Pix *) malloc(sizeof(Pix));
CGImageRef myCGImage = [image CGImage];
myPix->w = CGImageGetWidth (myCGImage);
myPix->h = CGImageGetHeight (myCGImage);myPix->d = CGImageGetBitsPerComponent(myCGImage);myPix->wpl = CGImageGetBytesPerRow (myCGImage) / 4;myPix->data = (l_uint32 *) imageData;myPix->colormap = NULL;NSLog(@"pixWrite=%d", pixWrite("/tmp/lept-res.bmp", myPix, IFF_BMP));
CGImageRef myCGImage = [image CGImage];struct Pix myPix;myPix.w = CGImageGetWidth (myCGImage);myPix.h = CGImageGetHeight (myCGImage);myPix.d = CGImageGetBitsPerComponent (myCGImage);myPix.wpl = CGImageGetBytesPerRow (myCGImage) / 4;... etc. ...CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider([picture CGImage]));const UInt8 *imageData = CFDataGetBytePtr(data);Pix *myPix = (Pix *) malloc(sizeof(Pix));
CGImageRef myCGImage = [picture CGImage];myPix->w = CGImageGetWidth (myCGImage);
myPix->h = CGImageGetHeight (myCGImage);myPix->d = CGImageGetBitsPerPixel([picture CGImage]) ;myPix->wpl = CGImageGetBytesPerRow (myCGImage)/4 ;myPix->data = (l_uint32 *) imageData;myPix->colormap = NULL;pixEndianByteSwap(myPix);
NSLog(@"pixWrite=%d", pixWrite("/tmp/lept-res.bmp", myPix, IFF_BMP));