2013-03-27 17 views
12

Okazało się, że w IOS UIImage można zmienić CIImage .and jest CIImage nieruchomość w UIImage. i kiedy używam UIImage, obiekt UIImage nie jest pusty, ale UIImage.ciimage ma wartość null, dlaczego?Czy ktoś może mi powiedzieć, dlaczego UIImage.ciimage jest null

wybacz moje głupie pytanie, jeśli ktoś może mi pomóc, dziękuję bardzo.


DODAJ

na przykład kod jak poniżej zwróci null:

UIImage *image = [UIImage imageNamed:@"test.jpg"]; 
CIImage *ciImage = image.CIImage 

ale jeśli w ten sposób CIImage nie jest zerowy:

UIImage *image = [UIImage imageNamed:@"test.jpg"]; 
CIImage *myImage = [[CIImage alloc] initWithCGImage:image.CGImage options:nil]; 

Odpowiedz

27

To dlatego, że ten UIImage w rzeczywistości nie jest CIImage. Innymi słowy, UIImage's CIImage nie jest zerowa tylko wtedy, gdy UIImage jest już wspierany przez CIImage (np. Ponieważ został wygenerowany przez imageWithCIImage:). Nie możesz tego użyć, aby magicznie zamienić UIImage w CIImage, jak wydajesz się mieć nadzieję, że to zrobisz.

Ta dokumentacja jest całkiem jasna. Zawsze wart przeczytania.

+0

@matt W jaki sposób można przekonwertować z UIImage na CIImage? – brimstone

+4

@brimstone Z inicjatorem 'initWithImage:' CIImage'a. – matt

+0

Zauważyłem, że czasami przechodzenie od CIImage do UIImage nie zawsze działa. Konwertuję CIImage na CGIImage, a następnie na UIImage i działa dobrze. – Munib

Powiązane problemy