iPhone CGContextRef CGBitmapContextCreate неподдерживаемая комбинация параметров

В моем приложении мне нужно изменить размер и обрезать некоторые изображения, хранящиеся локально и в Интернете. Я использую учебник Тревора Хармона , который реализует UIImage + Resize .

На моем iPhone 4 (iOS 4.3.1) все работает нормально, у меня нет проблем. Но на моем iPhone 3G (iOS 3.2) методы изменения размера и кадрирования не работают ни для одного изображения (локально сохраненные изображения - PNG).

В моем приложении мне нужно изменить размер и обрезать некоторые изображения, хранящиеся локально и в Интернете. Я использую учебник Тревора Хармона , который реализует UIImage + Resize .

На моем iPhone 4 (iOS 4.3.1) все работает нормально, у меня нет проблем. Но на моем iPhone 3G (iOS 3.2) методы изменения размера и кадрирования не работают ни для одного изображения (локально сохраненные файлы PNG).

В моем приложении мне нужно изменить размер и обрезать некоторые изображения, хранящиеся локально и в Интернете. Я использую учебник Тревора Хармона , который реализует UIImage + Resize .

На моем iPhone 4 (iOS 4.3.1) все работает нормально, у меня нет проблем. Но на моем iPhone 3G (iOS 3.2) методы изменения размера и кадрирования не работают ни для одного изображения (локально сохраненные файлы PNG). Это вывод консоли:

Tue Apr  5 02:34:44 Andreis-MacBook-Pro.local Puzzle[12453] : CGBitmapContextCreate:     unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; 3-component color space; kCGImageAlphaLast; 288 bytes/row.
Tue Apr  5 02:34:44 Andreis-MacBook-Pro.local Puzzle[12453] : CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; 3-component color space; kCGImageAlphaLast; 288 bytes/row.
Tue Apr  5 02:34:44 Andreis-MacBook-Pro.local Puzzle[12453] : CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; 3-component color space; kCGImageAlphaLast; 288 bytes/row.
Tue Apr  5 02:34:44 Andreis-MacBook-Pro.local Puzzle[12453] : CGBitmapContextCreate: unsupported parameter combination: 8 integer bits/component; 32 bits/pixel; 3-component color space; kCGImageAlphaLast; 288 bytes/row.

Это метод кадрирования

- (UIImage *)croppedImage:(CGRect)bounds 
{
    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds);
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return croppedImage;
}

Метод изменения размера следующий:

- (UIImage *)resizedImage:(CGSize)newSize
            transform:(CGAffineTransform)transform
       drawTransposed:(BOOL)transpose
 interpolationQuality:(CGInterpolationQuality)quality 
{
    CGRect newRect = CGRectIntegral(CGRectMake(0, 0, newSize.width, newSize.height));
    CGRect transposedRect = CGRectMake(0, 0, newRect.size.height, newRect.size.width);
    CGImageRef imageRef = self.CGImage;

    CGContextRef bitmap = CGBitmapContextCreate(NULL,
                                            newRect.size.width,
                                            newRect.size.height,
                                            CGImageGetBitsPerComponent(imageRef),
                                            0,
                                            CGImageGetColorSpace(imageRef),
                                            CGImageGetBitmapInfo(imageRef));
    if(bitmap == nil)
        return nil;

    CGContextConcatCTM(bitmap, transform);

    CGContextSetInterpolationQuality(bitmap, quality);

    CGContextDrawImage(bitmap, transpose ? transposedRect : newRect, imageRef);

    CGImageRef newImageRef = CGBitmapContextCreateImage(bitmap);
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef];

    CGContextRelease(bitmap);
    CGImageRelease(newImageRef);

    return newImage;
}

Может ли кто-нибудь объяснить мне, как у меня возникла эта проблема?

Спасибо, Андрей

10
задан Bigood 19 May 2015 в 08:58
поделиться