2014-02-12 29 views
0

對於一種物理縮放任何UIImage的方法,除了目標寬度和高度之外,我需要創建與圖像具有完全相同設置的位圖上下文。如何確定CGImage的每個像素的組件數量?

這是我的代碼到目前爲止。缺少什麼:如何確定CGBitmapContextCreate的bytesPerRow參數的每個CGImage像素的數量?

CGImageRef cgImage = self.CGImage; 
size_t widthPX = CGImageGetWidth(cgImage); 
size_t heightPX = CGImageGetHeight(cgImage); 
size_t bitsPerComponent = CGImageGetBitsPerComponent(cgImage); 
size_t bitsPerPixel = CGImageGetBitsPerPixel(cgImage); 
size_t bytesPerRow = CGImageGetBytesPerRow(cgImage); 
CGColorSpaceRef colorSpace = CGImageGetColorSpace(cgImage); 
CGColorSpaceModel colorSpaceModel = CGColorSpaceGetModel(colorSpace); 
CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(cgImage); 

CGContextRef CTX = CGBitmapContextCreate(NULL,destWidth,destHeight,bitsPerComponent,bytesPerRow/錯!!它是源寬度 /,色彩空間,BITMAPINFO!);

回答

3

這是我粗略的解決方案。我不確定它是否工作。

size_t bytesPerRow = CGImageGetBytesPerRow(cgImage); 
size_t bytesPerPixel = bytesPerRow/widthPX; 
size_t destBytesPerRow = bytesPerPixel * destWidth; 

我試圖做的是這樣的:首先,根據每行字節數和源圖像像素數計算每像素字節數。然後將其與目標寬度相乘以獲得每行目標圖像的字節數。

相關問題