Let's work on this today and see what we get. I've got meetings for the next 3 hours, but am free to try and help after that.
Feel free to email me in 3 hours. Cool? - Alex Zavatone On Feb 10, 2012, at 11:15 AM, Chris Paveglio wrote: > What I'm working with is a library that makes a QR code. It was built for iOS > but I need desktop OSX (which, on a side note, seems silly because when you > MAKE a qr code, you'd usually want to print it right? Otherwise phones would > just read them. Anyways...). It was easy enough to adjust the library to > product an NSImage instead of UIImage. It's giving me an RGBa image (which is > already BW, so I don't need to quantize... nor would I know how, that is way > out of my league of skills I think). I don't want to fiddle around with the > library so much because I'm afraid I will break it, and some of it's C++ and > straight C. It would be great if it could output an greyscale image at least, > instead of RBGa. But right now it doesn't so I will deal with the RGBa, and > all channels are equal so I could use any. > My C skills aren't so great, and I feel like if I can't make it all work > properly, I wouldn't know if I had -any- of it working properly. > > After a while of studying and trying some things, here's what I've got so > far. I know it's not correct and doesn't work yet. > > -(NSData *)oneBitData:(NSImage *)inputNSImage > { > NSData *testOnly = [NSData data]; > //this will be somewhat akin to un-reading the qrEncoder +renderDataMatrix > method > //I need to get 1 channel of the RGBa only here > //or, change the library to return a greyscale image > //output a 1 bit image of NSData format from an NSImage given in RGB mode > //get an image rep from the current qrImage > NSBitmapImageRep*imgRep = [NSBitmapImageRepimageRepWithData:[inputNSImage > TIFFRepresentation]]; > int > row, column, > widthInPixels = [imgRep pixelsWide], > heightInPixels = [imgRep pixelsHigh]; > //make a buffer of bits, like 50px x 50px = 2500 chars > const int rawDataSize = widthInPixels * heightInPixels; > unsigned char *rawData = (unsigned char*)malloc(rawDataSize); > NSUInteger lePixel; > for (row = 0; row < heightInPixels; row++) > for (column = 0; column <widthInPixels; column++) > { > [imgRep getPixel:&lePixel atX:row y:column]; > //copy the value from first memory area to the same > //location in the raw data area, it'll be either B or W, no inbetween values > NSLog(@"bit %d = %d", (row * column) , lePixel); > rawData[row * column] = lePixel < 128 ? 0 : 255; > } > return testOnly; > } > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com