اي فون:كيف يمكنني استخراج القنوات RGB من UIIMage?

StackOverflow https://stackoverflow.com/questions/1800993

  •  05-07-2019
  •  | 
  •  

سؤال

لدي UIImage مع قناة ألفا.

كيف يمكنني استخراج القنوات RGB من UIImage ، كل واحد أن تكون مستقلة UIImage مع ألفا ؟

شكرا مقدما.

هل كانت مفيدة؟

المحلول

مثل هذا.

كما نلقي نظرة على هذا السؤال - الثالث الجواب في العظمة التفاصيل
و بعض التعليمات البرمجية للوصول إلى بكسل و توفير لهم في جديد UIImage:

UIImage* image = ...; // An image
NSData* pixelData = (NSData*) CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage));
void* pixelBytes = [pixelData bytes];

//Leaves only the green pixel, assuming 32-bit RGBA
for(int i = 0; i < [pixelData length]; i += 4) {
        bytes[i] = 0; // red
        bytes[i+1] = bytes[i+1]; // green
        bytes[i+2] = 0; // blue
        bytes[i+3] = 0; // alpha
    }

NSData* newPixelData = [NSData dataWithBytes:pixelBytes length:[pixelData length]];
UIImage* newImage = [UIImage imageWithData:newPixelData];

مقتبس من هنا.لدينا ثلاث قنوات متميزة في صور منفصلة ، مثل في التعليمات البرمجية تعيين إلى الصفر كل شيء ولكن القناة التي تريد حفظها في كل مرة ثم قم بإنشاء صورة جديدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top