Aşağıda kodu (bu sitedeki) kopyaladım ve orijinal kod derlenmeyeceği için biraz değiştirdim. Kenar tespiti ve sonuçta renklerdeki basit değişiklikler için bayt dizisini değiştirmek istiyorum, ancak önce temel kodun çalışmasını istedim. Şu anda sistem derleniyor ve çalışıyor. Ekranda kötü çizilmiş bir fil görüntüler. Görüntüye dokunduğumda, kaybolur. Stepping, imageWithData sonucunu 0x0 olarak gösterir. Bunu hem png hem de bmp ile denedim ve aynı sonuçNSData'dan UiImage oluştur
Neyi yanlış yaptığımla ilgili ipuçları var mı?
@interface ImageViewDrawable : UIImageView
// I am using the following code to initialize this ImageView
ImageViewDrawable * uiv = [[ImageViewDrawable alloc] initWithImage:[UIImage imageNamed:@"ele.png"] ];
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// get and work on pixel data
NSData* pixelData = (NSData*) CGDataProviderCopyData(CGImageGetDataProvider(self.image.CGImage));
char* bytes =[pixelData bytes];
// Take away the red pixel, assuming 32-bit RGBA
for(int i = 0; i < [pixelData length]; i += 4) {
bytes[i] = bytes[i]; // red
bytes[i+1] = bytes[i+1]; // green
bytes[i+2] = bytes[i+2]; // blue
bytes[i+3] = bytes[i+3]; // alpha
}
// convert pixel back to uiiimage
NSData* newPixelData = [NSData dataWithBytes:bytes length:[pixelData length]];
char * bytes2 =[pixelData bytes];
UIImage * newImage = [UIImage imageWithData:newPixelData] ;
[self setImage: newImage ];
}
Yani beslediğim veriler esasen mevcut bir UIImage'dan geldi mi? –
Sorunumu görüyorum. Bu iç içe geçmiş çağrı kümeleri - CGDataProviderCopyData (CGImageGetDataProvider()) - veri sağlayıcısını alır ve ardından JUST verileri kopyalar. Yani, sadece pikselleri alıyorum ve yapılandırmanın geri kalanını orijinal görüntüden almıyorum. Bu yüzden, söz konusu pikselleri ve yönlendirdiğiniz CG bilgilerini kullanarak bir görüntü oluşturmam gerekiyor. Yardım için tekrar teşekkürler –