【问题标题】:How to save an image as Tiff or PNG with an alpha channel or alpha mask in iPhone SDK?如何在 iPhone SDK 中使用 alpha 通道或 alpha 蒙版将图像保存为 Tiff 或 PNG?
【发布时间】:2010-01-04 17:47:29
【问题描述】:

我有一张图片,里面有东西,背景是白色的。我想以允许 alpha 通道的格式保存该图像,或者以白色像素变为透明的方式使用 alpha 蒙版。有灯吗?

【问题讨论】:

    标签: iphone objective-c image transparency alpha


    【解决方案1】:

    我不知道有哪个库可以让这变得超级简单。但是,GLImageProcessing 示例here 中有很多相关的示例代码。 (我没有运行以下)

    UIImage *some_image = [UIImage imageNamed:@"somethin'.tiff"];
    CGImageRef cg_image = some_image.CGImage;
    CFDataRef data = CGDataProviderCopyData(CGImageGetDataProvider(cg_image));
    size_t bpp = CGImageGetBitsPerPixel(CGImage);
    
    uint32_t *stuff = (uint32_t *)CFDataGetBytePtr(data);
    int w = CGImageGetWidth(CGImage);
    int h = CGImageGetHeight(CGImage);
    int N = w * h;
    for (int i = 0; i < N; i++ ) {
        // do your stuff, test for white, set the alpha mask
        stuff[i] = stuff[i] & ((uint32_t)0xFFFFFFFF | alpha_mask);
    }
    

    你可以改用这个函数

    UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image);                               
    

    并将数据写入磁盘。我希望这有帮助。如果找到解决方案,请发布...

    【讨论】:

    • 好吧,我一直在做一些研究,在文件系统中,无论您如何处理图像,iPhone 都会将其保存为 .jpg 图像,并且到目前为止它从未保存过 alpha 通道。无论如何谢谢@robert。
    • 这不是真的。您可以使用 Alpha 通道保存图像。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2014-03-06
    • 2019-03-18
    相关资源
    最近更新 更多