ios 이미지 픽젤값 변경 질문이빈다.
글쓴이: kkokkokim14 / 작성시간: 목, 2016/04/21 - 10:37오후
구현하려고하는게 이미지에 어느정도의 흰색들을 투명하게하려고하는데요. 이상하게 알파값을 줘도 투명해 지지않아서
대놓고 0x00FFFFFF를 줘도 안되는데 왜그런지 혹시 아시는분 있나요.
대체적으로 알파값만 0되면 투명해지는걸로 아는데 RGBA 모든게 0값이어야 투명이미지가 되어서요
- (UIImage *)processWithePixels:(UIImage*)teeImage alpha:(int)trans{ UInt32 * teePixels; CGImageRef teeCGImage = [teeImage CGImage]; NSUInteger teeWidth = CGImageGetWidth(teeCGImage); NSUInteger teeHeight = CGImageGetHeight(teeCGImage); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); NSUInteger bytesPerPixel = 4; NSUInteger bitsPerComponent = 8; NSUInteger teeBytesPerRow = bytesPerPixel * teeWidth; teePixels = (UInt32 *)calloc(teeHeight * teeWidth, sizeof(UInt32)); CGBitmapInfo bitmapInfo = kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big; CGContextRef context = CGBitmapContextCreate(teePixels, teeWidth, teeHeight, bitsPerComponent, teeBytesPerRow, colorSpace, bitmapInfo); CGContextDrawImage(context, CGRectMake(0, 0, teeWidth, teeHeight), teeCGImage); for (NSUInteger j = 0; j < teeHeight; j++) { for (NSUInteger i = 0; i < teeWidth; i++) { UInt32 * currentPixel = teePixels + ( j * teeWidth) + i; UInt32 color = *currentPixel; *currentPixel = 0x00FFFFFF; } } // 4. Create a new UIImage CGImageRef newCGImage = CGBitmapContextCreateImage(context); UIImage * processedImage = [UIImage imageWithCGImage:newCGImage scale:1 orientation:teeImage.imageOrientation]; // 5. Cleanup! CGColorSpaceRelease(colorSpace); CGContextRelease(context); CFRelease(newCGImage); free(teePixels); return processedImage; };
Forums:
댓글 달기