Frage

Ich möchte nur:

1) Kopieren Sie die Pixeldaten.
2) Iterate und Ändern jedes Pixel (Zeigen Sie mir nur, wie NSLog die ARGB Werte wie 255)
3) Erstellen Sie eine UIImage aus den neuen Pixeldaten

Ich kann das die blutigen Details herauszufinden, ob jemand kann mir sagen, wie zu NSLog der RGBA-Wert eines Pixels als 255. Wie kann ich den folgenden Code ändern, dies zu tun? Seien Sie konkret bitte!

-(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;    
}
War es hilfreich?

Lösung

Hat dieser Richtung für Sie arbeiten? Ich würde Pixeldaten wie diese:

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]));

Andere Tipps

Wenn Sie möchten, um tatsächlich das Bild zu sehen, können Sie Florent Pillets NSLogger verwenden: https://github.com/fpillet/NSLogger

Die Idee ist, starten Sie den NSLogger-Client auf dem Desktop, und dann in Ihrer Anwendung setzen Sie diese nach oben hin nach oben:

#import "LoggerClient.h"

Und in Ihrer modifyPixels Methode, die Sie so etwas tun können:

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

Starten Sie den Client auf dem Desktop, und dann die App auf Ihrem iPhone laufen, und Sie werden sehen, reale Bilder im Client angezeigt. Sehr praktisch Bildprobleme wie Flipping, Drehen, Farben, Alpha für das Debuggen, etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top