CGContextRef を使用して画像にいくつかの変換を適用しようとしています。私は CGContextTranslateCTM、CGContextScaleCTM、および CGContextRotateCTM 関数を使用していますが、物事を単純にするために、最初の関数だけに焦点を当てます。次のコードが元の画像を正確に生成するのはなぜですか?! 何か不足していますか?
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef g = CGBitmapContextCreate((void*) pixelData,
width,
height,
RGBA_8_BIT,
bytesPerRow,
colorSpace,
kCGImageAlphaPremultipliedLast);
CGContextSetShouldAntialias(g, YES);
CGContextSetInterpolationQuality(g, kCGInterpolationHigh);
CGContextTranslateCTM( g,translateX, translateY );
CGImageRef tempImg = CGBitmapContextCreateImage (g);
CGContextDrawImage( g, CGRectMake (0, 0, width, height), tempImg );
CGContextRelease(g);
CGColorSpaceRelease( colorSpace );
また、翻訳後、この画像の上に別の画像を描画する方法を説明しますが、部分的な透明度 (例: アルファ = 0.5) を使用します。
たくさん検索しましたが、答えが見つかりませんでした。助けていただければ幸いです... :)
pixelData からコンテキストを作成していること、および翻訳後に tempImg が作成されることに注意してください。元の画像が現在作成されているため、初期化に問題はありませんが、問題は翻訳にあると思います..