UIImage *image = [UIImage imagenamed:@"test.png"];...CFDataRef imageData = CGDataProvIDercopyData(CGImageGetDataProvIDer([image CGImage]));const UInt8 *rasterData = CFDataGetBytePtr(data);
任何人都可以建议如何正确地将此数据转换为Leptonica的Pix结构:
/*-------------------------------------------------------------------------* * 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 */};
UPD:
我这样做:
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));
但我得到的与原始图片完全不同:
http://dl.dropbox.com/u/4409984/so/lept-orig.png
与
http://dl.dropbox.com/u/4409984/so/lept-res.png
我究竟做错了什么?
解决方法 一旦有了CGImage,就可以直接从CGImage中获取大部分信息.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. ...总结
以上是内存溢出为你收集整理的objective-c – 从UIImage / CGImage转换为Leptonica Pix结构全部内容,希望文章能够帮你解决objective-c – 从UIImage / CGImage转换为Leptonica Pix结构所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)