Я пытаюсь применить некоторые преобразования к изображениям, используя 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 создается после перевода. В инициализации нет ничего плохого, поскольку в настоящее время создается исходное изображение, но проблема в переводе, я полагаю ...