2011-12-23 121 views
1

我正在尋找在谷歌,如果我得到的東西的添加效果的圖像像Black & WhiteSepiagrayScale等我找到了一個有用的鏈接,在Sepia轉換圖像,但沒有什麼可以將它轉換成W或灰度。在iPhone轉換圖像爲黑白,深褐色,灰度等SDK

這裏是鏈接http://groups.google.com/group/iphonesdkdevelopment/browse_thread/thread/b987b02deec08b9f

通過代碼我才知道,我們需要改變RBG爲,但如何獲得RBG爲B&WgrayScale去後。這些效應的RBG比率是多少?

任何幫助將不勝感激。

在此先感謝

回答

1

你需要做的就是爲鏈接(谷歌組)給予同樣的方式。

此外,您可以在this link中找到將其轉換爲grayScale的邏輯。

希望這可以幫助你。

+0

是的,這工作得很好灰度,但對於黑白是我想知道的是如何計算RBG顏色A B &用黑白?至於棕褐色的鏈接是說'uint32_t oRed = rgbaPixel [RED] * 0.393 + rgbaPixel [GREEN] * 0.769 + rgbaPixel [BLUE] * 0.189;' 用於'B&​​W'圖片的比例 – 2011-12-23 09:06:16

+0

@KapilChoubisa我面對同樣的問題,請告訴我關於用於黑白圖像的比例 – 2014-06-24 04:27:19

4

你可以通過

-(UIImage *)convertOriginalImageToBWImage:(UIImage *)originalImage 
{ 
UIImage *newImage; 

CGColorSpaceRef colorSapce = CGColorSpaceCreateDeviceGray(); 
CGContextRef context = CGBitmapContextCreate(nil, originalImage.size.width * originalImage.scale, originalImage.size.height * originalImage.scale, 8, originalImage.size.width * originalImage.scale, colorSapce, kCGImageAlphaNone); 
CGContextSetInterpolationQuality(context, kCGInterpolationHigh); 
CGContextSetShouldAntialias(context, NO); 
CGContextDrawImage(context, CGRectMake(0, 0, originalImage.size.width, originalImage.size.height), [originalImage CGImage]); 

CGImageRef bwImage = CGBitmapContextCreateImage(context); 
CGContextRelease(context); 
CGColorSpaceRelease(colorSapce); 

UIImage *resultImage = [UIImage imageWithCGImage:bwImage]; 
CGImageRelease(bwImage); 

UIGraphicsBeginImageContextWithOptions(originalImage.size, NO, originalImage.scale); 
[resultImage drawInRect:CGRectMake(0.0, 0.0, originalImage.size.width, originalImage.size.height)]; 
newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 


return newImage; 
} 
+0

或者您也可以使用GPUImage https://github.com/BradLarson/GPUImage – 2012-12-28 19:49:17