-(UIImage *) Changecoloursimagetograyscaleimage: (UIImage *) animage type: (int) type
{
cgimageref imageref = animage. cgimage;
size_t width = cgimagegetwidth (imageref);
size_t height = cgimagegetheight (imageref);
size_t bitspercomponent = cgimagegetbitspercomponent (imageref);
size_t bitsperpixel = cgimagegetbitsperpixel (imageref);
size_t bytesperrow = cgimagegetbytesperrow (imageref);
Cgcolorspaceref colorspace = Cgimagegetcolorspace(imageref);
cgbitmapinfo bitmapinfo = cgimagegetbitmapinfo (imageref);
bool shouldinterpolate = cgimagegetshouldinterpolate (imageref);
Cgcolorrenderingintent Intent = cgimagegetrenderingintent(imageref);
Cgdataproviderref dataprovider = Cgimagegetdataprovider(imageref);
cfdataref data = cgdataprovidercopydata (dataprovider);
UInt8 *buffer = (UInt8 *)cfdatagetbyteptr (data);
Nsinteger x, y;
For (y = 0; y < height; y++) {
For (x = 0; x < width, x + +) {
UInt8 *tmp;
TMP = buffer + y * bytesperrow + x * 4;
UInt8 Red,green,blue;
Red = * (tmp + 0);
Green = * (tmp + 1);
Blue = * (tmp + 2);
UInt8 brightness;
switch (type) {
Case 0:
Brightness = (*red + + * Green + 151 * blue)/ ;
* (tmp + 0) = brightness;
* (tmp + 1) = brightness;
* (tmp + 1) = brightness;
Break ;
case 1:
Brightness = (*red + + * Green + 151 * blue)/ ;
* (tmp + 0) = red;
* (tmp + 1) = green * 0.7;
* (tmp + 1) = blue *0.4;
Break ;
Case 2:
Brightness = (*red + + * Green + 151 * blue)/ ;
* (tmp + 0) = 255-red;
* (tmp + 1) = 255-green;
* (tmp + 1) = 255-blue;
Break ;
Default:
* (tmp + 0) = red;
* (tmp + 1) = green;
* (tmp + 2) = blue;
Break ;
}
}
}
cfdataref effecteddata = cfdatacreate (NULL, buffer, cfdatagetlength (data));
Cgdataproviderref effecteddataprovider = Cgdataprovidercreatewithcfdata(effecteddata);
cgimageref effectedcgimage = cgimagecreate (width, height, bitspercomponent, BitsPerPixel, Bytesperrow, ColorSpace, Bitmapinfo, Effecteddataprovider, NULL, shouldinterpolate, intent);
UIImage *effectedimage = [[UIImage alloc]initwithcgimage:effectedcgimage];
cgimagerelease (effectedcgimage);
cfrelease (effecteddataprovider);
cfrelease (effecteddata);
cfrelease (data);
return effectedimage;
}
:
iOS turns color photos into black and white