使用新的尺寸创建新图像,例如高度等于宽度和宽度等于高度

时间:2009-07-08 10:02:08

标签: iphone

我遇到了图像旋转的问题。我想创建一个高度等于宽度的新图像,因为旋转了90度。但是创建的新图像会改变尺寸,但不会准确地将数据放在图像中。

CGImageRef imageRef = OriginalImage.CGImage; /////////////新高度等于原始图像的宽度     size_t newHeight = CGImageGetWidth(imageRef);     size_t newWidth = CGImageGetHeight(imageRef);     size_t bitsPerComponent = CGImageGetBitsPerComponent(imageRef);     size_t bitsPerPixel = CGImageGetBitsPerPixel(imageRef);

CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();
CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(imageRef);
CFDataRef argbData = CFDataCreate(NULL,rotatedPixelData,originalImageDataLength);
CGDataProviderRef provider = CGDataProviderCreateWithCFData(argbData);

CGImageRef nimage = CGImageCreate(NewWidth,NewHeight,bitsPerComponent, bitsPerPixel,bytesPerRow,colorspace,bitmapInfo,provider, NULL, true, kCGRenderingIntentDefault);

我应该更改CGImageCreate的参数?

1 个答案:

答案 0 :(得分:1)

您可能需要计算newBytesPerRow

这意味着新图像的大小可能不同 作为原文,所以也重新计算originalImageDataLength