0
我有一個UIImage
,當我的iPad保持縱向顯示時,它看起來是正確的方式,但是當我得到CGImageRef
與之關聯時,CGImageRef
逆時針旋轉90度。谷歌搜索後,我知道這是因爲CGImageRef
沒有方向數據,不像UIImage
。我需要查看和修改一些像素在CGImageRef
,目前我在做這個通過直接訪問RAWDATA變量(圖像是一個UIImage *):如何旋轉CGImageRef?
CGImageRef imageRef = [image CGImage];
CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB(); //maybe make ...Gray();
unsigned char *rawData = (unsigned char*) calloc(height * width * 4, sizeof(unsigned char));
CGContextRef context = CGBitmapContextCreate(rawData, width, height, bitsPerComponent, bytesPerRow, colorSpaceRef, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
但是,爲了讓我正常修改rawData中存儲的像素數據,我需要CGImageRef處於正確的方向。如何順時針旋轉CGImageRef
90度然後訪問rawData(像素信息)?
爲什麼目標的高度和寬度需要翻轉左/右方向?另外,爲什麼位圖需要翻譯? – Mahir
bitmapInfo從哪裏來?你應該也可以釋放CGContextRef。 – sdsykes