1

背景のないPNG画像のコントラストをプログラムで変更したい、または背景を透明と言わなければなりません。次の画像は例を示しています。ここに画像の説明を入力してください

背景画像とのコントラストを変えることができます。しかし、バックグラウンドなしでそれを変更することはできません。私はこれこれを試しましたが、どちらも背景画像で動作します。これを達成するのを手伝ってください。または、解決策やチュートリアルのリンクを提案してください。

前もって感謝します

4

1 に答える 1

1
CGImageRef inImage = self.CGImage;
CFDataRef m_DataRef = CGDataProviderCopyData(CGImageGetDataProvider(inImage));  
UInt8 * m_PixelBuf = (UInt8 *) CFDataGetBytePtr(m_DataRef);  

int length = CFDataGetLength(m_DataRef);

for (int i=0; i<length; i+=4)
{
    filter(m_PixelBuf,i,context);
}  
CGContextRef ctx = CGBitmapContextCreate(m_PixelBuf,  
                                         CGImageGetWidth(inImage),  
                                         CGImageGetHeight(inImage),  
                                         CGImageGetBitsPerComponent(inImage),
                                         CGImageGetBytesPerRow(inImage),  
                                         CGImageGetColorSpace(inImage),
                                         CGImageGetBitmapInfo(inImage) );     

CGImageRef imageRef = CGBitmapContextCreateImage(ctx);  
CGContextRelease(ctx);
UIImage *finalImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
CFRelease(m_DataRef);
return finalImage;
于 2012-09-28T04:37:07.590 に答える