CGImage载入的图片,查看bitmap详细信息的一段好用代码
来源:互联网 发布:淘宝培训班广州 编辑:程序博客网 时间:2024/05/19 14:18
在IOS中,载入一张图片到CGImage后,如果想查看图片的信息,这里有一段比较好的代码可以帮助你,其他的信息要显示可以参考苹果的API自己设置!
-(void)imageDump:(NSString*)file{ UIImage* image = [UIImage imageNamed:file]; CGImageRef cgimage = image.CGImage; size_t width = CGImageGetWidth(cgimage); size_t height = CGImageGetHeight(cgimage); size_t bpr = CGImageGetBytesPerRow(cgimage); size_t bpp = CGImageGetBitsPerPixel(cgimage); size_t bpc = CGImageGetBitsPerComponent(cgimage); size_t bytes_per_pixel = bpp / bpc; CGBitmapInfo info = CGImageGetBitmapInfo(cgimage); NSLog( @"\n" "===== %@ =====\n" "CGImageGetHeight: %d\n" "CGImageGetWidth: %d\n" "CGImageGetColorSpace: %@\n" "CGImageGetBitsPerPixel: %d\n" "CGImageGetBitsPerComponent: %d\n" "CGImageGetBytesPerRow: %d\n" "CGImageGetBitmapInfo: 0x%.8X\n" " kCGBitmapAlphaInfoMask = %s\n" " kCGBitmapFloatComponents = %s\n" " kCGBitmapByteOrderMask = %s\n" " kCGBitmapByteOrderDefault = %s\n" " kCGBitmapByteOrder16Little = %s\n" " kCGBitmapByteOrder32Little = %s\n" " kCGBitmapByteOrder16Big = %s\n" " kCGBitmapByteOrder32Big = %s\n", file, (int)width, (int)height, CGImageGetColorSpace(cgimage), (int)bpp, (int)bpc, (int)bpr, (unsigned)info, (info & kCGBitmapAlphaInfoMask) ? "YES" : "NO", (info & kCGBitmapFloatComponents) ? "YES" : "NO", (info & kCGBitmapByteOrderMask) ? "YES" : "NO", (info & kCGBitmapByteOrderDefault) ? "YES" : "NO", (info & kCGBitmapByteOrder16Little) ? "YES" : "NO", (info & kCGBitmapByteOrder32Little) ? "YES" : "NO", (info & kCGBitmapByteOrder16Big) ? "YES" : "NO", (info & kCGBitmapByteOrder32Big) ? "YES" : "NO" ); CGDataProviderRef provider = CGImageGetDataProvider(cgimage); NSData* data = (id)CGDataProviderCopyData(provider); [data autorelease]; const uint8_t* bytes = [data bytes]; printf("Pixel Data:\n"); for(size_t row = 0; row < height; row++) { for(size_t col = 0; col < width; col++) { const uint8_t* pixel = &bytes[row * bpr + col * bytes_per_pixel]; printf("("); for(size_t x = 0; x < bytes_per_pixel; x++) { printf("%.2X", pixel[x]); if( x < bytes_per_pixel - 1 ) printf(","); } printf(")"); if( col < width - 1 ) printf(", "); } printf("\n"); }}
效果如下:::
===== a.png =====CGImageGetHeight: 5CGImageGetWidth: 3CGImageGetColorSpace: <CGColorSpace 0x4d08ff0> (kCGColorSpaceDeviceRGB)CGImageGetBitsPerPixel: 32CGImageGetBitsPerComponent: 8CGImageGetBytesPerRow: 20CGImageGetBitmapInfo: 0x00000003 kCGBitmapAlphaInfoMask = YES kCGBitmapFloatComponents = NO kCGBitmapByteOrderMask = NO kCGBitmapByteOrderDefault = NO kCGBitmapByteOrder16Little = NO kCGBitmapByteOrder32Little = NO kCGBitmapByteOrder16Big = NO kCGBitmapByteOrder32Big = NOPixel Data:(00,00,00,FF), (FF,FF,FF,FF), (FF,00,00,FF), (00,FF,00,FF), (00,00,FF,FF)(00,00,00,FF), (FF,FF,FF,FF), (FF,00,00,FF), (00,FF,00,FF), (00,00,FF,FF)(FF,FF,FF,00), (FF,FF,FF,00), (FF,FF,FF,00), (FF,FF,FF,00), (FF,FF,FF,00)===== b.png =====CGImageGetHeight: 5CGImageGetWidth: 3CGImageGetColorSpace: <CGColorSpace 0x4d08ff0> (kCGColorSpaceDeviceRGB)CGImageGetBitsPerPixel: 24CGImageGetBitsPerComponent: 8CGImageGetBytesPerRow: 15CGImageGetBitmapInfo: 0x00000000 kCGBitmapAlphaInfoMask = NO kCGBitmapFloatComponents = NO kCGBitmapByteOrderMask = NO kCGBitmapByteOrderDefault = NO kCGBitmapByteOrder16Little = NO kCGBitmapByteOrder32Little = NO kCGBitmapByteOrder16Big = NO kCGBitmapByteOrder32Big = NOPixel Data:(00,00,00), (FF,FF,FF), (FF,00,00), (00,FF,00), (00,00,FF)(00,00,00), (FF,FF,FF), (FF,00,00), (00,FF,00), (00,00,FF)(00,00,00), (FF,FF,FF), (FF,00,00), (00,FF,00), (00,00,FF)
- CGImage载入的图片,查看bitmap详细信息的一段好用代码
- ios--CGImage载入的图片,查看bitmap详细信息的一段好用代码
- CGImage载入的图片,查看bitmap详细信息的一段好用代码
- CGImage载入的图片,查看bitmap详细信息的一段好用代码
- CGImage载入的图片,查看bitmap详细信息的一段好用代码
- 一段好的代码
- 一段javascript实现缩略图的好代码
- 一段javascript实现缩略图的好代码
- 一段javascript实现缩略图的好代码
- 好用的图片、PSD查看器
- 查看SQLServer数据表的详细信息
- 查看SQLServer数据表的详细信息。
- 查看表索引的详细信息
- 查看maven依赖的详细信息
- Oracle 查看表的详细信息
- maven查看plugin的详细信息
- 查看maven依赖的详细信息
- 一段为图片加水印的代码
- java中的static关键字
- linux64位使用xampp及常见问题
- ClipboardManager
- C语言深度剖析--注释误会
- java ME 开发工具下载地址
- CGImage载入的图片,查看bitmap详细信息的一段好用代码
- QuartZ在Web中的应用
- Window XP驱动开发(十九) windows内核高级调试技巧(双机调试)
- SQL Server 2005无日志文件附加数据库
- ogre 1.7.0的下载、配置和编译指南
- java中的final关键字
- 未能找到回调的目标 XX 或未实现 ICallbackEventHandler。
- 用户向左,开发者向右?机锋网数据图解(下)
- SQL Server 2005 数据维护实务