如何从一个UIImage的NSLog像素RGB? [英] How to NSLog pixel RGB from a UIImage?

查看:161
本文介绍了如何从一个UIImage的NSLog像素RGB?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我只是想:结果

1)复制像素数据。结果
2)迭代和修改的每个像素(只是告诉我怎样的NSLog的ARGB值255)结果
3)创建新的像素数据的UIImage的结果。

我可以计算出血淋淋的细节,如果有人可以告诉我怎么NSLog的一个像素的RGBA值255如何修改如下code做到这一点?具体请!

   - (*的UIImage)modifyPixels:(*的UIImage)originalImage
{的NSData * PixelData取出=(NSData的*)CGDataProviderCopyData(CGImageGetDataProvider(originalImage.CGImage));
UINT myLength = [PixelData取出长度]    的for(int i = 0; I< myLength; I + = 4){
        //变化像素HERE
        / *
        旁注:只要告诉我怎么NSLog的他们
        * /
        //例:
        //的NSLog(@阿尔法255值为:%U,数据[I]);
        //的NSLog(@红255值为:%U,数据[I + 1]);
        //的NSLog(@绿色255-值是:%U,数据[I + 2]);
        //的NSLog(@蓝255值为:%U,数据[I + 3]);
    }    //创建新的UIImage(newImage)HERE    返回newImage;
}


解决方案

为你做这方面的工作?我会得到这样的像素数据:

  UInt32的*像素= CGBitmapContextGetData(CTX);的#define getRed(p)的((对)及0x000000FF)
的#define getGreen(p)的((对)及0x0000FF00)GT;> 8
的#define GetBlue进行(p)的((对)及0x00FF0000)GT;> 16
//从11像素的显示屏的RGB值
的NSLog(@红色:%d个,绿色:%D,蓝:%D,getRed(像素[10]),getGreen(像素[10]),GetBlue进行(像素[10]));

I just want to:

1) Copy the pixel data.
2) Iterate and Modify each pixel (just show me how to NSLog the ARGB values as 255)
3) Create a UIImage from the new pixel data

I can figure out the the gory details if someone can just tell me how to NSLog the RGBA values of a pixel as 255. How do I modify the following code to do this? Be Specific Please!

-(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;	
}

解决方案

Did this direction work for you? I'd get pixel data like this:

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]));

这篇关于如何从一个UIImage的NSLog像素RGB?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆