如何确定CGImage的每个像素的组件数量?

对于一种物理缩放任何UIImage的方法,除了目标宽度和高度之外,我需要创建与图像具有完全相同设置的位图上下文。

这是我的代码到目前为止。 缺少什么:如何确定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 / wrong !!它用于源宽!/,colorSpace,bitmapInfo);


这是我粗略的解决方案。 我不确定它是否工作。

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

我试图做的是:首先,根据每行的字节数和源图像中的像素数计算每像素的字节数。 然后将其与目标宽度相乘以获得每行目标图像的字节数。

链接地址: http://www.djcxy.com/p/46529.html

上一篇: How to determine number of components per pixel for CGImage?

下一篇: Masking an Image with an Image?