سؤال

أريد فقط أن:

1) نسخ البيانات بكسل.
2) تكرار وتعديل كل بكسل (أرني كيف NSLog على ARGB القيم 255)
3) إنشاء UIImage من جديد بكسل البيانات

لا يمكن معرفة التفاصيل المروعة إذا كان شخص ما يمكن فقط قل لي كيف NSLog RGBA قيم بكسل كما 255.كيف يمكنني تعديل التعليمات البرمجية التالية إلى فعل هذا ؟ أن تكون محددة من فضلك!

-(UIImage*)modifyPixels:(UIImage*)originalImage
{

NSData* pixelData = (NSData*)CGDataProviderCopyData(CGImageGetDataProvider(originalImage.CGImage));
uint myLength = [pixelData length];

    for(int i = 0; i < myLength; i += 4) {


        //CHANGE PIXELS HERE
        /*
        Sidenote: Just show me how to NSLog them
        */
        //Example:
        //NSLog(@"Alpha 255-Value is: %u", data[i]);
        //NSLog(@"Red 255-Value is: %u", data[i+1]);
        //NSLog(@"Green 255-Value is: %u", data[i+2]);
        //NSLog(@"Blue 255-Value is: %u", data[i+3]);
    }

    //CREATE NEW UIIMAGE (newImage) HERE 

    return newImage;    
}
هل كانت مفيدة؟

المحلول

هل هذا اتجاه العمل بالنسبة لك ؟ أود الحصول على بيانات بكسل مثل هذا:

UInt32 *pixels = CGBitmapContextGetData( ctx );

#define getRed(p) ((p) & 0x000000FF)
#define getGreen(p) ((p) & 0x0000FF00) >> 8
#define getBlue(p) ((p) & 0x00FF0000) >> 16
// display RGB values from the 11th pixel
NSLog(@"Red: %d, Green: %d, Blue: %d", getRed(pixels[10]), getGreen(pixels[10]), getBlue(pixels[10]));

نصائح أخرى

إذا كنت تريد أن ترى الصورة ، يمكنك استخدام فلوران Pillet هو NSLogger:https://github.com/fpillet/NSLogger

الفكرة تبدأ NSLogger العميل على سطح المكتب ومن ثم في التطبيق الخاص بك يمكنك وضع هذا نحو الأعلى:

#import "LoggerClient.h"

و في modifyPixels طريقة يمكنك أن تفعل شيئا مثل هذا:

LogImageData(@"RexOnRoids",        // Any identifier to go along with the log
             0,                    // Log level
             newImage.size.width,  // Image width
             newImage.size.height, // Image height
             UIImagePNGRepresentation(newImage)); // Image as PNG

بدء تشغيل عميل على سطح المكتب الخاص بك ثم قم بتشغيل التطبيق على اي فون الخاص بك و سترى الصور الحقيقية تظهر في العميل.مفيد جدا لتصحيح صورة مشاكل مثل التقليب, الدورية, الألوان, ألفا, الخ.

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