stackoverflow.com/questions/7175786/...

ользуюhttps://github.com/PaulSolt/UIImage-Conversion

Тем не менее, похоже, что проблема с альфа-каналом.Проблема восстановления UIImage из пиксельных байтовых данных RGBA

Я упростил проблему, поэтому я представляю ее более аккуратно.

Я загружаю проект Пола, запускаю его. Он отображает изображение в центре экрана - пока все правильно.

Но его демо не тестирует на Альфу.

Поэтому я пытаюсь скомпоновать свое изображение кнопки ...

... наверху.

Результат:

вот код - я только что изменил AppDelegate_iPad.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // Override point for customization after application launch.
    {
        UIImage *image = [UIImage imageNamed:@"Icon4.png"];
        int width = image.size.width;
        int height = image.size.height;

        // Create a bitmap
        unsigned char *bitmap = [ImageHelper convertUIImageToBitmapRGBA8:image];

        // Create a UIImage using the bitmap
        UIImage *imageCopy = [ImageHelper convertBitmapRGBA8ToUIImage:bitmap withWidth:width withHeight:height];

        // Cleanup
        if(bitmap) {
            free(bitmap);   
            bitmap = NULL;
        }

        // Display the image copy on the GUI
        UIImageView *imageView = [[UIImageView alloc] initWithImage:imageCopy];
        CGPoint center = CGPointMake([UIScreen mainScreen].bounds.size.width / 2.0, 
                                     [UIScreen mainScreen].bounds.size.height / 2.0);
        [imageView setCenter:center];
        [window addSubview:imageView];
        [imageView release];
    }


    if( 1 )
    {
        UIImage *image = [UIImage imageNamed:@"OuterButton_Dull.png"];
        int width = image.size.width;
        int height = image.size.height;

        // Create a bitmap
        unsigned char *bitmap = [ImageHelper convertUIImageToBitmapRGBA8:image];

        // Create a UIImage using the bitmap
        UIImage *imageCopy = [ImageHelper convertBitmapRGBA8ToUIImage:bitmap withWidth:width withHeight:height];

        // Cleanup
        if(bitmap) {
            free(bitmap);   
            bitmap = NULL;
        }

        // Display the image copy on the GUI
        UIImageView *imageView = [[UIImageView alloc] initWithImage:imageCopy]; // <-- X
        imageView.backgroundColor = [UIColor clearColor];
        CGPoint center = CGPointMake([UIScreen mainScreen].bounds.size.width / 2.0, 
                                     [UIScreen mainScreen].bounds.size.height / 2.0);
        [imageView setCenter:center];
        [window addSubview:imageView];
        [imageView release];

    }


    [window makeKeyAndVisible];

    return YES;
}

Если я переключу линию с пометкой ...

// <-- X 

сказать...

... initWithImage:image]; // instead of imageCopy

... отображается так, как должно:

У кого-нибудь есть проблема? Это выглядит действительно хорошая библиотека для использования, но я не могу понять, где проблема.

Ответы на вопрос(1)

Ваш ответ на вопрос