2012-07-02 8 views
12

Tworzę CIImage z UIImage następująco:UIImage to CIImage - rozmiar jest o połowę?

CIImage* someCIImage = [CIImage imageWithCGImage:someUIImage.CGImage]; 

Porównując someCIImage.extent.size.width/height z someUIImage.size.width/height uważam, że czasami CIImage jest podwójna wielkość w wymiarach, a czasem jego samego rozmiaru co UIImage.

Wygląda na to, że jeśli UIImage jest nieco większy, CIImage jest dwukrotnie większy, natomiast jeśli UIImage jest nieco mniejszy, to nie jest tak.

Czy ktoś to widział wcześniej/wiem, dlaczego tak jest? Powoduje to prawdziwe problemy, ponieważ próbuję narysować CIImage z załadowanego UIImage.

+2

Zastanawiam się, czy to ma związek z grafiką Retina Display? –

+1

Sprawdź metodę 'scale' obiektu' UIImage'; powinien ci powiedzieć, jak przekonwertować rozmiar na piksele. –

+0

Mam taki sam problem, gdy robię coś z CIFILter. Przed użyciem filtra częściowo wykorzystuję konwerter UIImage do CIImage. Twoja uwaga pomogła mi, ale wciąż mam problem z ustaleniem CIFiltera na końcu. Rzeczywista skala własno-własności wynosi 2 na urządzeniach siatkówki. – nodepond

Odpowiedz

8

size ma to związek z odległością między punktami na wyświetlaczu, ponieważ liczba punktów na wyświetlaczu siatkówki jest podwojona. size ma nie reprezentuje liczbę pikseli, jak zakładałeś.

+0

Jeśli chodzi o to, co z tym zrobić, konieczne będzie skalowanie obrazu, jak wskazano w powyższych komentarzach. –

Powiązane problemy