【问题标题】:How to NSLog pixel RGB from a UIImage?如何从 UIImage NSLog 像素 RGB?
【发布时间】:2010-11-24 02:10:52
【问题描述】:

我只想:

1) 复制像素数据。
2) 迭代和修改每个像素(只需告诉我如何将 ARGB 值 NSLog 为 255)
3) 从新的像素数据创建 UIImage

如果有人能告诉我如何将像素的 RGBA 值通过 NSLog 记录为 255,我可以弄清楚血淋淋的细节。如何修改以下代码来做到这一点?请具体说明!

-(UIImage*)modifyPixels:(UIImage*)originalImage
{

NSData* pixelData = (NSData*)CGDataProviderCopyData(CGImageGetDataProvider(originalImage.CGImage));
uint myLength = [pixelData length];

    for(int i = 0; i < myLength; i += 4) {


        //CHANGE PIXELS HERE
        /*
        Sidenote: Just show me how to NSLog them
        */
        //Example:
        //NSLog(@"Alpha 255-Value is: %u", data[i]);
        //NSLog(@"Red 255-Value is: %u", data[i+1]);
        //NSLog(@"Green 255-Value is: %u", data[i+2]);
        //NSLog(@"Blue 255-Value is: %u", data[i+3]);
    }

    //CREATE NEW UIIMAGE (newImage) HERE 

    return newImage;    
}

【问题讨论】:

    标签: iphone uikit bitmap uiimage pixel


    【解决方案1】:

    这个方向对你有用吗?我会得到这样的像素数据:

    UInt32 *pixels = CGBitmapContextGetData( ctx );
    
    #define getRed(p) ((p) & 0x000000FF)
    #define getGreen(p) ((p) & 0x0000FF00) >> 8
    #define getBlue(p) ((p) & 0x00FF0000) >> 16
    // display RGB values from the 11th pixel
    NSLog(@"Red: %d, Green: %d, Blue: %d", getRed(pixels[10]), getGreen(pixels[10]), getBlue(pixels[10]));
    

    【讨论】:

    • 您正在对数据格式进行假设。不能保证图像是 32bpp ARGB。
    【解决方案2】:

    如果您想实际查看图像,可以使用 Florent Pillet 的 NSLogger: https://github.com/fpillet/NSLogger

    这个想法是你在桌面上启动 NSLogger 客户端,然后在你的应用中把它放在顶部:

    #import "LoggerClient.h"
    

    在您的 modifyPixels 方法中,您可以执行以下操作:

    LogImageData(@"RexOnRoids",        // Any identifier to go along with the log
                 0,                    // Log level
                 newImage.size.width,  // Image width
                 newImage.size.height, // Image height
                 UIImagePNGRepresentation(newImage)); // Image as PNG
    

    在您的桌面上启动客户端,然后在您的 iphone 上运行该应用程序,您会看到客户端中出现了真实的图像。非常方便调试图像问题,例如翻转、旋转、颜色、alpha 等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2012-05-15
      • 1970-01-01
      • 2014-03-14
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多