문제

빨간색과 파란색 값이 상호 교환되는 곳에서 이미지를 렌더링하려고 할 때 이미지가 표시됩니다.

      {

    colorSpace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);

        ...

    cgctx = CGBitmapContextCreate (bitmapData,
                                pixelsWide,
                                pixelsHigh,
                                8,      // bits per component
                                bitmapBytesPerRow,
                                colorSpace,
                                kCGImageAlphaPremultipliedLast);

 }
.

KCGIMAGEALPHAPREMULTIPLIDLISTIPLISTIPLIDLAST 대신 KCGIMAGEALPHAPREMULTIPLIEDFIRST를 사용하면 녹색과 적색을 찾아서 비트 교환을 얻습니다.

조언을하십시오.

도움이 되었습니까?

해결책

비트 맵 컨텍스트에서 픽셀이 읽혀 졌기 때문에 색상 왜곡의 문제가 발생했습니다. 다음과 같은 변경 사항을 함으로써이 상황을 극복하는 것이 좋습니다

#if __BIG_ENDIAN__ bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Big; #else bitmap_info = kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Little; #endif

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top