Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. - (UIImage *)imageProcess:(UIImage *)image
  2. {
  3.     CGImageRef inImage = image.CGImage;      
  4.     CGContextRef ctx;
  5.  
  6.     CFDataRef m_DataRef;
  7.     m_DataRef = CGDataProviderCopyData(CGImageGetDataProvider(inImage));
  8.     UInt8 * m_PixelBuf = (UInt8 *) CFDataGetBytePtr(m_DataRef);
  9.     //    Byte tmpByte;
  10.     int length = CFDataGetLength(m_DataRef);
  11.     NSLog(@"len %d", length);
  12.  
  13.     NSLog(@"width=%d, height=%d", CGImageGetWidth( inImage ), CGImageGetHeight( inImage ));        
  14.     NSLog(@"1=%d, 2=%d, 3=%d", CGImageGetBitsPerComponent(inImage), CGImageGetBitsPerPixel(inImage),CGImageGetBytesPerRow(inImage));
  15.     float distance, coefficent;
  16.     int x, y;
  17.     int width = CGImageGetWidth(inImage);
  18.     int height = CGImageGetHeight(inImage);
  19.     int centerx = CGImageGetWidth(inImage)/2;
  20.     int centery = CGImageGetWidth(inImage)/2;
  21.     float maxDist = sqrt(pow(centerx,2)+pow(centery, 2));
  22.     NSLog(@"maxdist: %f", maxDist);
  23.  
  24.     for (int index = 0; index < length; index += 4)
  25.     {
  26.         x = (index/4) % width+1;
  27.         y = floor((index/4)/width)+1;
  28.         distance = sqrt(pow((x-centerx),2)+pow((y-centery),2));
  29.         coefficent = cos((90*distance * (3.14159265358/180)) / maxDist);
  30.         NSLog(@"coefficent: cos((90* %f * (3.14159265358/180)) / %f)=%f",distance, maxDist, coefficent);
  31.         m_PixelBuf[index + 1] = 255 * coefficent;
  32.         m_PixelBuf[index + 2] = 255 * coefficent;
  33.         m_PixelBuf[index + 3] = 255 * coefficent;    
  34.         //m_PixelBuf[index + 1] = m_PixelBuf[index + 1];
  35.         //m_PixelBuf[index + 2] = m_PixelBuf[index + 2];
  36.         //m_PixelBuf[index + 3] = m_PixelBuf[index + 3];
  37.        
  38.     }
  39.     ctx = CGBitmapContextCreate(m_PixelBuf,
  40.                                 CGImageGetWidth( inImage ),
  41.                                 CGImageGetHeight( inImage ),
  42.                                 8,
  43.                                 CGImageGetBytesPerRow( inImage ),
  44.                                 CGImageGetColorSpace( inImage ),
  45.                                 kCGImageAlphaPremultipliedFirst );
  46.  
  47.     CGImageRef imageRef = CGBitmapContextCreateImage (ctx);
  48.     UIImage* rawImage = [UIImage imageWithCGImage:imageRef];
  49.     CGContextRelease(ctx);
  50.     return rawImage;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement